1. 程式人生 > >java基礎知識總結(二)----java程式的初始化順序

java基礎知識總結(二)----java程式的初始化順序

Java初始化原則:① 靜態物件(變數)優先於非靜態物件(變數)  ② 父類優先於子類 ③ 按照成員變數的定義順序進行初始化.

初始化的主要順序:父類靜態變數>父類靜態程式碼塊>子類靜態變數>子類靜態程式碼塊>父類非靜態變數>父類非靜態程式碼塊>

父類建構函式>子類非靜態變數>子類非靜態程式碼塊>子類建構函式

class Base {
    static{
        System.out.println("Base static block");
    }
    {
        System.out.println(" Base block");
    }
    public Base(){
        System.out.println("Base constructor");
    }
}

public class Derived extends Base{
    static{
        System.out.println("Derived static block");    
    }
    {
        System.out.println("Derived block");
    }
    public Derived(){
        System.out.println("Derived constructor");
    }

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

 

其執行結果為:Base static block
            Derived static block
            Base block
            Base constructor
            Derived block
            Derived constructor