title image


Smiley Vererbung: Objekt von Unterklasse als Superobjekt in Superklasse
Hi.



Ich bin gerade am Programmieren und nun bin ich an einem Punkt wo ich mir nicht sicher bin ob es so oder so ist.



Problem ist folgendes:

- Ich habe eine SuperKlasse A und eine Unterklasse A2

- Ich habe eine SuperKlasse B und eine Unterklasse B2

- Nun habe ich ein Objekt A2 in B2 zur Verwendung.

Rufe dann eine Methode auf die aber in B implementiert wurde, und die liefert mir A Objekte zurück.

Was passiert mit den speziellen Attributen und Werten aus A2?



Die Methodenrümpfe würden etwa so aussehen (alles in Pseudocode :) ):



public B {



public A getAll() {

return obj2; //irgendein Objekt vom Typ A

}

}





public B2 extends B {

public add(A2 obj1) {

//Nimmt Objekte vom Typ A2 auf

}

}



Hier als Abfolge von Aufrufen (dann wirds deutlicher):



B2.add(A2); //A2 hat irgendwelche speziellen Werte, die nicht aus A sind

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



Was ist nun mit den Objekten die B2.getAll() zurückliefert. Hab ich alle vorher in obj1 gespeicherten Attribute im Objekt [A]obj2 noch zur Verfügung? Ich muss ja dann obj2 casten, weil das ja vom Typ A ist, aber ich will ja Typ A2 Obejkte haben.





Muss ich, um alle Attribute eines Typ A2-Objektes zu behalten, die Methode getAll() in B2 überschreiben oder kann ich einfach die Supermethode B.getAll benutzen?



Danke schon mal für die Hilfe.

Ich bin mir echt unsicher. Ich hab das mal gelernt, aber kA ob das nun so stimmt. Ich weiß nur, dass ich von einem Unterklassenojekt aus alle Superklassenmethodne und -attribute aufrufen kann und das alles kein Problem ist.



Aber wenn es quasi zwei geerbte Klassen sind wie hier, A und B.

Ich hab auch in meinen Büchern nicht so einen Fall gefunden und im Archiv auch nicht.



Gruß
--------------------------------------
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: