Anfängerfrage zu super
-
//finalAuto.java public class finalAuto{ public static void main(String[] args){ Zweisitzercabrio X3=new Zweisitzercabrio(); X3.name="X3"; X3.Baujahr=1999; X3.Erstzulassung=2001; X3.vdauer=12; X3.notsitze=true; System.out.println(X3.name); System.out.println(X3.Baujahr); System.out.println(X3.Erstzulassung); System.out.println(X3.vdauer); System.out.println(X3.super.Alter()); } } /////////////////////// class Auto{ String name; int Baujahr; int Erstzulassung; int Alter(){ return (2009-this.Baujahr)*365; } } ///////////////////////////// class Cabrio extends Auto{ int vdauer; int Alter(){ return 2009-this.Baujahr; } } ////////////////////////////// class Zweisitzercabrio extends Cabrio{ boolean notsitze; int Alter(){ return (2009-this.Baujahr)*12;} }
1.)Wie kann ich in der main Funktion auf die übergeordnete Klasse Cabrio zugreifen um die Methode Alter auszuführen
2.)und auf die VaterKlasse Auto um deren Methode auszuführen?
Mfg
qwertz
qwertz
-
Solange du das innerhalb deiner Klassenhierarchie nicht explizit vorsiehst glaube ich nicht, dass es dafür eine Möglichkeit gibt. Schliesslich überschreibt man Methoden, um diejenigen der Basisklasse zu ersetzen...
-
also ich weiß jetz nicht genau was du willst
bitte beschränke dich auf MINIMAL-beispieleaber ich denke du hast folgendes:
du hast eine instanz der klasse zweisitzcabrio aber willst die funktion der oberklasse auto verwenden, die eigentlich redefiniert wurde?
das dürfte doch eigentlich gehen oder?
zweisitzcabrio a = new zweisitzcabrio();
(auto)a.alter();dürfte der einfache cast das problem nicht lösen?
oder geht das nur in die andere richtung?
-
sry hab mich geirrt klappt nicht