Dynamischer und statischer Typ

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Dynamischer und statischer Typ
Könnte mir bitte kurz jemand sagen, welcher dyamischer Typ in der letzten Zeile (System.out.println(((Ober)obj).name()); // Dick) von Folie 8-103 vorliegt. Nachdem “Dick” ausgegeben wird, müsste der dyamische Typ “Unter” sein. Frage mich aber: Wieso ist der dynamische Typ “Unter”, wenn das Objekt mit “Ober” gecastet wurde?


Der dynamische Typ eines Objekts ändert sich zur Laufzeit nie. Casten ändert den statischen Typ.


OK, danke!
Habe ich das richtig verstanden: Beim casten ändert sich der statische Typ nur in dieser Programmzeile und geht danach automatisch wieder in seinen vorherigen statischen Typ über?


Betrachte einen cast einfach als Funktionsaufruf, der eine Kopie der übergebenen Variable mit geändertem statischen Typ zurückgibt.