Auf Methoden einer Subklasse zugreifen ohne Typecast ?

lennero

Bekanntes Mitglied
Hallo. Ich habe 1 Superklasse und 2 Subklassen sowie ein Interface mit 2 Methoden welche beide in den Subklassen überschrieben werden.
Jetzt möchte ich ein Array der Superklasse erstellen und dort jeweils ein Objekt von jeder Subklasse speichern.

Nun möchte ich mittels Schleife das Array durchlaufen und ohne Typecast die beiden Methoden aufrufen. Leider klappt es nicht wirklich da der Compiler Objekte der Superklasse erwartet. Typecasts sind für diese Aufgabe nicht erlaubt, ohne Schleife zu arbeiten ebenfalls nicht. Wie löse ich das Problem ?
 
Das ist eine sehr ungewöhnliche Erklärung...

Das Interface ist einer der Supertypen deiner Subklassen - du kannst in deinem Code zB statt der Superklasse auch das Interface angeben.
 
Das hat aber dann zur Folge, dass ich nur Methoden die es innerhalb des Interface gibt aufrufen kann ?
Zum Ausgeben von anderen Attributen (in den Subklassen) müsste ich dann trotzdem casten ?
 
Ja - man kann jeweils nur Methoden des Typs aufrufen, als der es deklariert ist.
Die Fälle, in denen man es mit einem anderem Typ deklariert, als man eigentlich braucht, sind aber selten 😉
 

Zurück
Oben