java子類和父類的執行順序
阿新 • • 發佈:2019-02-02
java中一個類首先是被載入到記憶體後,再去按順序執行類中的static完成初始化,在載入過程先是載入父類,在去載入子類。構建子類例項時,先建立父類的例項。執行構造方法時,先去初始化成員屬性。舉個例子說明下:
class Test { public static void main(String[] args) { new Sub(); new Sub(); } } class Super { public static int i=0; static { System.out.println(i); } public Super() { System.out.println("super"+i); } } class Sub extends Super{ public static int t = 1; static { System.out.println(t); } public Sub() { System.out.println("test"+t); } }
執行順序是
1.public static int i=0;
2.System.out.println(i);
3.public static int t = 1;
4.System.out.println(t);
5.System.out.println("test"+t);
6.System.out.println("super"+i);
執行結果
0
1
super0
test1
super0
test1