1. 程式人生 > >Java中動態程式碼塊,構造程式碼塊,靜態程式碼塊之間的執行順序

Java中動態程式碼塊,構造程式碼塊,靜態程式碼塊之間的執行順序

Java中動態程式碼塊,構造程式碼塊,靜態程式碼塊之間的執行順序

/**
 * Java中動態程式碼塊,構造程式碼塊,靜態程式碼塊之間的執行順序
 * @author Administrator
 *
 */
class HelloA {

    public HelloA() {
        System.out.println("HelloA");
    }

    {
        System.out.println("I'm A class");
    }

    static {
        System.out.println("static A");
    }

}

public class HelloB extends HelloA {

    public HelloB() {
        System.out.println("HelloB");
    }

    {
        System.out.println("I'm B class");
    }

    static {
        System.out.println("static B");
    }

    public static void main(String[] args) {
        new HelloB();
    }
}

點選檢視結果

static A       // 父類的靜態程式碼塊
static B       // 子類的靜態程式碼塊
I'm A class    // 父類的動態程式碼塊
HelloA         // 父類的構造方法
I'm B class    // 子類的動態程式碼塊
HelloB         // 子類的構造方法