1. 程式人生 > >static塊和建構函式的執行順序

static塊和建構函式的執行順序


public class OrderTest {

public static void main(String[] args) {
/*
* 結果:
parent static block
Child static block
parent construct block
Child construct block
*/
new Child();
/*
*
* parent construct block
Child construct block
*/
new Child();
}
}

class Parent {
static {
System.out.println("parent static block");
}

public Parent() {
System.out.println("parent construct block");
}
}

class Child extends Parent {
static {
System.out.println("Child static block");
}

public Child() {
System.out.println("Child construct block");
}
}

執行順序

1 父類的靜態程式碼塊

2 子類的靜態程式碼塊

3 父類的構造方法

4 子類的構造方法