flashnfantasy: Polymorphie in Java - richtige Aussage?

Beitrag lesen

Hallo,

hab gerade folgenden Satz im Skript gefunden, der glaub ich falsch ist. Bevor ich den Prof. auf den Fehler aufmerksam mache, wollte ich kurz fragen ob es tatsächlich falsch ist:

"Hat in einer Methode ein Parameter den Typ einer Klasse, so dürfen auch Referenzen auf Väter dieser Klasse übergeben werden."

Müsste es nicht Referenzen auf Söhne heißen?

Danke und Schönen Tourstart!
Bene

Wenn es um eine Vorlesung um Objektorientierung (in ihrer reinsten Form handelt),
dann liegt ihr beide (dein Professor und auch du) falsch:

Parameter einer Methode haben keine Typbindung, daher ist es völlig egal, was für eine Klasse ein Objekt ist, es muß grundsätzlich klappen.

Eine solche reine objektorientierte Sprache ist zB. Smalltalk.
Die einzige Gefahr ist, daß innerhalb der Methode dann eine Eigenschaft oder Methode dieses Parameters verwendet wird, die diese Klasse nicht implementiert hat.

---

Nun zu so Pseudo-Objektorientierten Sachen wie C++ und Java:
Da bin ich jetzt auch etwas unsicher - pseudo ist halt wieder Auslegungssache (ich kann eher für C++ sprechen).

Rein aus der Technik der Kompilierung (von C++) weiß ich, daß alle Klassen sogenannte V-Tables (in denen eine Übersicht über alle Methoden und Instanzen gespeichert sind) haben, und diese V-Tables für die Kompilierung aufgelöst werden.
Theoretisch dürften alle abgeleiteten Klassen (Söhne) daher sauber durchlaufen, weil wenn sie eine Methode selbst nicht implementiert haben, dann hat es die übergeordete Klasse.
Auch vom praktischen Nutzen her denke ich mal, daß du recht hast.

Warum probierst du es nicht einfach mal aus ?