java 靜態代碼塊、構造代碼塊、構造函數調用順序

檢驗一下java的靜態代碼塊、構造代碼塊、構造函數的調用順序問題。java

 

父類函數

public class Father {
    
    private int tag = 1;

    public static String flag = "father";

    public Father() {
        System.out.println("construct father");
    }

    static {

        System.out.println("staic father block");

    }
    {
        System.out.println("father block");

    }
    public int getTag() {
        return tag;
    }
    public void setTag(int tag) {
        this.tag = tag;
    }

}

子類this

public class Sun extends Father{
    
    private int tag = 10;
    public static String flag = "sun";
    
    public Sun(){
        System.out.println("construct sun");
    }
    
    static {
        
        System.out.println("static sun block ");
    }
    
    {
        System.out.println("sun block");
    }

    public int getTag() {
        return tag;
    }

    public void setTag(int tag) {
        this.tag = tag;
    }

}

父類運行結果圖:spa

 

結論,靜態代碼塊 > 構造代碼塊 > 構造函數code

子類運行結果圖:blog

 

結論,父靜態 > 子靜態 > 父構造代碼塊 > 父構造函數 > 子構造代碼塊 > 子構造函數get

簡單點記錄就是 靜態  > 父類 > 子類class

相關文章
相關標籤/搜索