Frage zu Polymorphismus: Objekt der Subklasse in Referenz der Oberklasse

Vokabulator

Mitglied
Hallo!

Also ich verstehe den Sinn von Polymorphismus z. B. bei Methodenaufrufen. Ich sehe aber noch nicht ganz den Sinn von sowas hier:

Code:
Oberklasse ref = new Unterklasse();

Was ist hier der Vorteil? Zumal ich ja über die ref nur auf Methoden und Eigenschaften der Oberklasse zugreifen kann und ansonsten casten muss...
 
Sowas macht eher in Listen oder Arrays Sinn, wenn du viele verschiedene Objekte hast, die aber alle von einer Klasse erben oder ein Interface implementieren.
Außerdem ist diese Variable nun "offen" für alle Typen, die von Oberklasse erben. Vielleicht soll das der Sinn sein.
 
Ja, stimmt bei Listen sehe ich das oft... Aber das ist ja generell eine Möglichkeit des Polymorphismus... und oft wird sowas als Beispiel gebracht, aber eben dann ohne wirklich gute Erklärung für den Sinn. In einem Video hat der Typ gemeint, dass man dann verschiedenen Objekte in einem Array des Typs der Oberklasse speichern kann. Aber das kann ich ja auch, wenn ich Unterklasse nicht in einer Referenz von Oberklasse deklariere...
 
Ja. Das geht auch. Da kann man sogar sofort in das Array schreiben.
Alleinstehend macht dieses Beispiel oben keinen Sinn sondern ist nur eine Demonstration einer Möglichkeit.
 
Okay, ja... so isoliert is ungünstig. Einen guten Grund hab ich noch gefunden und zwar, dass man dann später die ref mit anderen Subklassen als Objekten verbinden kann, man kann also leicht das Objekt tauschen. Aber wie du gesagt hattest, hatte das auch mit Lists zu tun.

Danke trotzdem für die Antwort!
 
Zuletzt bearbeitet:

Zurück
Oben