類(含父類)定義初始化過程

源代碼:

package org.phn.reusingclass;

/**
 * Created by Pan on 2016/10/8.
 */
public class Bath {
    private String s0;
    private String s1 = "s1";//5
    private static String s2 = "s2";//1
    private String s3="s3";//6
    private String s4;
    public Bath(){//8
        System.out.println("new Bath()");
    }
    public Bath(String s){
        System.out.println("new Bath('"+s+"')");
    }
    static{//2
        System.out.println("static block");
    }
    {//7
        System.out.println("block");
    }

    public static void main(String[] args) {
        BathSon b = new BathSon();
    }

}
class BathSon extends  Bath {
    private static String ss1 = "s1";//3
    private String ss2="s2";//9
    public BathSon(){//11
        System.out.println("new BathSon()");
    }
    static{//4
        System.out.println("son static block");
    }
    {//10
        System.out.println("son block");
    }
}

可以試着運行一下代碼
改動一下static成員變量和static代碼塊的位置
改動一下普通成員變量和普通代碼塊的位置

這裏多設置斷點,來看執行的過程。

下圖只是簡單的說明了一下,還有很多細節需要深思。

這裏寫圖片描述

歡迎一起討論交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章