標籤:
現在的現象是子類繼承父類。然後重寫了父類的一個方法,父類的建構函式中調用了父類的這個方法,那麼當子類執行個體化連帶父類執行個體化時調用的就是子類重寫的方法。
代碼:
父類:
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()是子類的重寫的方法,即子類的方法。
java繼承問題