Hallo,
ich verstehe leider nicht ganz wie Funktionsaufrufe in Superkonstruktoren ablaufen.
Am besten gebe ich ein kleines Beispiel:
Beim Erstellen eines Objektes von B wird im B-Konstruktor nach Erstellen eines kompletten B-Objekts im Speicher und Initialisierung aller Objektvariablen der Super-Konstruktor (A-Konstruktor) aufgerufen.
(java.lang.object mal ausgelassen)
Wie wird im Elternkonstruktor nun auf Methoden zugegriffen?
Wird geschaut, ob in der Elternklasse die Funktion mit Zugriffsrechten von B aus vorhanden ist?
Und wenn nicht wird geschaut, ob auf die Funktion in der nächsten Kindklasse zuzugreifen ist, bis man in der letzten Kindklasse angekommen ist? Da auf diese ja stets zuzugreifen ist.
Erben mehr als 2 Klassen von einander blicke ich da leider nicht mehr ganz durch wenn ich das programmiertechnisch teste.
Kennt jemand vielleicht eine allgemeine Reihenfolge und Sichtweise wie auf Funktionen in Konstruktoren zugegriffen wird, inkl. Geheimnisprinzip?
Viele Grüße
ich verstehe leider nicht ganz wie Funktionsaufrufe in Superkonstruktoren ablaufen.
Am besten gebe ich ein kleines Beispiel:
Java:
public class A{
protected int x = 1;
public A(){
setX();
}
protected setX(){
x = 2;
}
}//class A
public class B extends A{
private B(){ //.....
public setX(){
x = 3;
public static B make(){
return new B();
}
}//class B
Beim Erstellen eines Objektes von B wird im B-Konstruktor nach Erstellen eines kompletten B-Objekts im Speicher und Initialisierung aller Objektvariablen der Super-Konstruktor (A-Konstruktor) aufgerufen.
(java.lang.object mal ausgelassen)
Wie wird im Elternkonstruktor nun auf Methoden zugegriffen?
Wird geschaut, ob in der Elternklasse die Funktion mit Zugriffsrechten von B aus vorhanden ist?
Und wenn nicht wird geschaut, ob auf die Funktion in der nächsten Kindklasse zuzugreifen ist, bis man in der letzten Kindklasse angekommen ist? Da auf diese ja stets zuzugreifen ist.
Erben mehr als 2 Klassen von einander blicke ich da leider nicht mehr ganz durch wenn ich das programmiertechnisch teste.
Kennt jemand vielleicht eine allgemeine Reihenfolge und Sichtweise wie auf Funktionen in Konstruktoren zugegriffen wird, inkl. Geheimnisprinzip?
Viele Grüße