Java對象
class A{
{show(0);}
int x=1;
{show(1);}
A(){x=2;}
void show(int label){}
}
class B extends A{
{show(2);}
int y=1;
{show(3);}
B(){y=2;}
void show(int label){
System.out.println(label+": x="+x+" y="+y);
}
}
public class C{
public static void main(String[] args){
new B()。show(4);
}
}
輸出:
=================================================
0: x=0 y=0
1: x=1 y=0
2: x=2 y=0
3: x=2 y=1
4: x=2 y=2
說明了初始化的順序:
0. 為基類和子類的成員分配存儲空間
1. 基類成員賦初值
2. 基類構造函數
3. 子類成員賦初值
4. 子類構造函數