title image


Smiley Re: Vererbung: Objekt von Unterklasse als Superobjekt in Superklasse
Und getAll() liefert mir aber ja (wie man am Methodenrumpf sieht) ja nur Objekte vom Typ A.

Und Du meinst, dass diese Objekte dann trotzdem (auch wenn sie wie ein Objekt von TypA behandelt werden) Objekte vom TypA2 sind?



Ja, das ist einer der Grundsätze objektorientierter Programmierung.



Das heißt dein if von oben müsste so aussehen:





A2 einA = (A2)B2.getAll(); //hier bekomme ich TypA-Objekte, weil die Supermethode von B aufgerufen wird.

if(einA instanceof A2) {

System.out.println("Rückgabe ist tatsächlich vom Typ A2!");

}







Nein, dies ist doppelt gemoppelt! Wenn hier einA ungleich null ist, ist es auf jeden Fall eine Instanz von A2 und es ist true. Liefert getAll keine Instanz von A2 (oder von A2 abgeleitete Klassen) würde an dieser Stelle eine Class-Cast-Exception geworfen.



Ciao


Wenn man eine Entwicklung in der Informatik verstanden hat, ist sie bereits veraltet!

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: