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

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

pri hello author new aps string 代碼 點擊 public

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         // 子類的構造方法

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