Ausgabe
Ich habe versucht, über dieses Thema zu recherchieren, konnte aber keine Klarheit darüber finden. Bitte helfen Sie mir dabei.
Lösung
Sie können super() in Ihrer untergeordneten Klasse verwenden. Sie können keine Instanz einer abstrakten Klasse erstellen (das wissen Sie vielleicht)
abstract class Parent{
Parent(){
System.out.println("Parent contructor!");
}
}
public class Child extends Parent{
public Child() {
super();
System.out.println("Child contructor!");
}
public static void main(String[] args) {
new Child();
}
}
super()
Auch wenn Sie in der Klasse nichts angeben Child
, wird dennoch der Konstruktor der übergeordneten Klasse aufgerufen, da super()
er vom Compiler in den Standardkonstruktor der Child
Klasse eingefügt wird, während die .class generiert wird. Wenn Sie nur einen parametrisierten Konstruktor in der übergeordneten Klasse haben, müssen Sie den übergeordneten Klassenkonstruktor explizit super(..parameter)
in Ihrem untergeordneten Klassenkonstruktor aufrufen. Hoffe das hilft!
Beantwortet von – ProgrammerBoy
Antwort geprüft von – David Marino (FixError Volunteer)