title image


Smiley Re: Vererbung: Objekt von Unterklasse als Superobjekt in Superklasse
Danke ich muss es wohl mal so testen.



Also eclipse sagt mir beim Programmieren, dass ich (um zum Typ A2 zu kommen) das Objekt das mir "getAll()" liefert erst noch casten muss. Also so:

(A2)getAll();





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?



Das hier:

if(einA instanceof A2)

{

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

}



wird so auf jeden Fall nie true.

Weil der Methodenrumpf von getAll() (ist ja aus Klasse B) so aussieht:

public A getAll() {

return allA; //oder was auch immer

}





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!");

}



Oder hab ich was übersehen?

Bleibt nur noch die Frage, ob in dem Objekt einA dann alle Attribute und Werte von vorher noch vorhanden sind oder ob die durch das "hin- und herschieben" nud casten verloren gehen?



Ich probier das mal eben aus.



So ein Wirr-Warr. Was mich am meisten ärgert, eigentlich müsste ich das wissen, aber trotzdem bin ich mir unsicher. Naja. Vielleicht hilft die "Lüftung" ja auch anderen!? :)
--------------------------------------
thrash {a} gmx {pkt} net
pgp-id: 0x71DEEF0C
Zum Posten von PHP- oder Java-Code bitte der Übersicht wegen den HTML-Tag <pre> ... </pre> und/oder <code> ... </code> verwenden!


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: