Ich habe eine Frage über polymorphe Zuordnungen. Lassen Sie uns diese Erklärungen übernehmen:Polymorphismus: Quelle und Ziel nicht kompatibel
CAR car;
MERCEDES mercedes;
//MERCEDES inherits from CAR
car = new MERCEDES(classA);
mercedes = car
Ist die letzte Zuordnung möglich? Ich dachte, dass die erste Zuweisung den Typ Auto in MERCEDES ändert und so die letzte Zuordnung wäre richtig. Aber in den Blättern habe ich gezeigt, dass es nicht kompiliert, weil die Quelle der Zuweisung und das Ziel nicht kompatibel sind. Ist das richtig? Und warum ist das so?
'Auto = Neu MERCEDES (...) 'ändert nicht den * Typ * der 'Auto'-Variable; Es ist immer noch 'CAR'. Der Auftrag ist gültig, weil "MERCEDES" ** ein ** 'CAR' ist, aber es ändert nichts an der Tatsache, dass' car' nicht garantiert eine bestimmte 'CAR'-Unterklasse ist. – jonrsharpe
Das bedeutet, dass der statische Typ CAR bleibt, während der dynamische Typ MERCEDES – DevX10