Data la catena di derivazione di classi vuote
public class SuperSuperClasse { }
public class SuperClasse extends SuperSuperClasse { }
public class Classe extends SuperClasse { }
è possibile istanziare oggetti per ognuna di esse
public class CostruttoriTest { public static void main(String args[]) { SuperSuperClasse s_s_classe = new SuperSuperClasse(); SuperClasse s_classe = new SuperClasse(); Classe classe = new Classe(); } }
Apparentemente nessun codice viene eseguito, ma…
Data la catena di derivazione di classi, con i costruttori di default che scrivono un messaggio
public class SuperSuperClasse { public SuperSuperClasse() { System.out.println("Super Super Classe"); } }
public class SuperClasse extends SuperSuperClasse { public SuperClasse() { System.out.println("Super Classe"); } }
public class Classe extends SuperClasse { public Classe() { System.out.println("Classe"); } }
se si istanziano le classi
public class CostruttoriTest1 { public static void main(String args[]) { SuperSuperClasse s_s_classe = new SuperSuperClasse(); System.out.println(); SuperClasse s_classe = new SuperClasse(); System.out.println(); Classe classe = new Classe(); } }
è possibile seguire le sequenze di metodi costruttori attivati implicitamente
Super Super Classe Super Super Classe Super Classe Super Super Classe Super Classe Classe