public class OberKlasse {
int a;
public OberKlasse() { // Konstruktor
this.a = 15;
}
}
public class UnterKlasse extends OberKlasse {
int b = 20;
public UnterKlasse() { //Konstruktor
//super(); //macht kein unterschied ob es da ist oder nicht
}
public int anzeigeUnterKlasse() {
return a + b; //return ist immer 35
}
}
News:
|
public class Base
{
...
void MachWas()
{
...
};
};
public class Derived extend Base
{
...
void MachWas()
{
super.MachWas(); //Führt die Methode MachWas von Base aus
...
}
}
|
3 |
Autsch. `super()` ist immer ein Konstrukturaufruf. Wenn eine Methode aus der Superklasse aufgerufen werden soll, sollte schon `super.machWas()` aufgerufen werden.
– Bombe 09.09.2009
|
|
@Bombe: Richtig, jetzt wird mir das auch klarer. super() alleine macht da garnichts...zumindest erkenne ich das nicht. Aber wenn man super.bla() macht dann ist das schon eher nachvollziehbar! Das war übrigens das was hier irgendwie KEINER erkennen oder mir sagen konnte... Amen
– Revollt 09.09.2009
|
||
Ah, da bin ich dann wohl mit Ruby durcheinander gekommen (ich glaube da verhielt sich das so...). Hab den Fehler korrigiert, danke dafür.
– Shelling 09.09.2009
|
public MyClass(int i)
super(6)
super(6)
|
Kreis( int x, int y, int rad ) {
super( x, y ); radius = rad; }
super.ausgeben()
|
"super() führt den Konstruktor der Vorfahrenklasse aus" - verstehe ich nicht. Mit oder ohne Super wird der Konstruktor der Vorfahrenklasse ausgeführt. Das war ja eigentlich meine Frage... bzw. blicke ich da nicht mehr durch.
– Revollt 08.09.2009
|
|
Hm, ohne viel Ahnung von Java zu haben muss ich sagen das sich in diesem Thread das keyword "super" eher ließt wie ein base. in .NET. Und base und this sind mal so gar nicht ähnlich :)
– Nicolai Schönberg 05.11.2011
|