Qualunque cosa si sta vedendo qui è chiamato come costruttore concatenamento. Now What is Constructor Chaining:
Il concatenamento del concatenamento avviene tramite l'uso dell'ereditarietà. Un sottoprogramma per il primo metodo del costruttore è chiamare il suo metodo costruttore della superclasse. Ciò garantisce che la creazione dell'oggetto della sottoclasse inizi con con l'inizializzazione delle classi sopra di esso nella catena ereditaria .
Potrebbe esserci un numero qualsiasi di classi in una catena di ereditarietà. Ogni metodo di costruzione richiamerà la catena fino a quando la classe in alto è stata raggiunta e inizializzata.Quindi, ogni classe successiva di seguito è inizializzata mentre la catena torna indietro alla sottoclasse originale. Questo processo è chiamato costruttore di concatenamento. (Source)
Questo è ciò che accade nel vostro programma. Quando si compila il programma, il Child
è compilato per questo modo da javac
:
class Child extends Parent
{
Child()
{
super();//automatically inserted here in .class file of Child
System.out.println("S2");
}
}
E la classe genitore è convertito al seguente:
Parent()
{
super();//Constructor of Object class
System.out.println("S1");
}
Ecco perché l'output sta mostrando come:
S1 //output from constructor of super class Parent
S2 //output from constructor of child Class Child
fonte
2013-03-30 18:19:55