巢狀繼承
public A()
{
System.out.println("A");
}
}
class B extends A{
public B(){
System.out.println("B");
}
}
public class C extends B{
A a=new A();
public C(){
System.out.println("C");
}
public static void main(String arg[]){
C c=new C();
}
}
output=ABAC
程式執行流程:
1.在C c=new C();的時候就進入C()建構子了
2.然後執行C()建構子裡的super();這行就是去執行B()建構子
3.進到B()建構子後執行super();進到A()的建構子
4.接著執行System.out.println("A");印出A
5.再回到B()建構子執行System.out.println("B");印出B
6.接著發現有物件變數 a 需要初始化 → 印出 A
7.最後才是執行System.out.print("C");印出C