代碼:
父類:
public class Father {
public Father() {
System.out.println("基類構造函數{");
show();
new a();
System.out.println("}");
}
public void show() {
System.out.println("基類----show");
}
public class a {
public a() {
System.out.println("inner class 構造函數");
}
}
}
子類:
public class Child extends Father{
public static void main(String[] arf){
new Father().show();
System.out.println("--------------------我是分割線-------------------------");
new Child().show();
System.out.println("--------------------我是分割線-------------------------");
new Father().show();
}
public Child(){
System.out.println("子類構造函數");
}
public void show(){
System.out.println("extend基類-----show");
}
}
運行結果:
--------------------我是分割線-------------------------
基類構造函數{
基類----show
inner class 構造函數
}
基類----show
--------------------我是分割線-------------------------
基類構造函數{
extend基類-----show
inner class 構造函數
}
子類構造函數
extend基類-----show
--------------------我是分割線-------------------------
基類構造函數{
基類----show
inner class 構造函數
}
基類----show
--------------------我是分割線-------------------------
從運行結果上可以看出來運行的順序。
特別,運行結果中間部分構造函數中,調用的show()是子類的重寫的方法,即子類的方法。