国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java類中元素初始化順序詳解

2019-11-26 16:00:00
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

public class Test4 {
    @Test
    public void test(){
        child child = new child();
    }
}

class parent{
    public static String parentStaticField = "父類靜態變量";
    public String parentNormalField ="父類普通變量";
    static {
        System.out.println(parentStaticField);
        System.out.println("父類靜態塊");
    }

    {
        System.out.println(parentNormalField);
        System.out.println("父類普通塊");
    }

    public parent(){

        System.out.println("父類構造方法");
    }
}

class child extends parent{
    public static String childStaticField = "子類靜態變量";
    public String childNormalField ="子類普通變量";
    static {
        System.out.println(childStaticField);
        System.out.println("子類靜態塊");
    }

    {
        System.out.println(childNormalField);
        System.out.println("子類普通塊");
    }

    public child(){
        System.out.println("子類構造方法");
    }
}


輸出:

復制代碼 代碼如下:

父類靜態變量
父類靜態塊
子類靜態變量
子類靜態塊
父類普通變量
父類普通塊
父類構造方法
子類普通變量
子類普通塊
子類構造方法

執行過程:

1、當執行到new child時,裝載器尋找已經編譯的child類的代碼(也就是child.class文件)。在裝載的過程中,裝載器注意到它有一個基類,于是它再裝載基類。不管你創不創建基類對象,這個過程總會發生。如果基類還有基類,那么第二個基類也會被裝載,依此類推。

2、執行根基類的static初始化,然后是下一個派生類的static初始化,依此類推。這個順序非常重要,因為派生類的“static初始化”有可能要依賴基類成員的正確初始化。

3、當所有必要的類都已經裝載結束,創建child類對象。

4、child類存在父類,則調用父類的構造函數,可以使用super來指定調用哪個構造函數。

  基類的構造過程以及構造順序,同派生類的相同。首先基類中各個變量按照字面順序進行初始化,然后執行基類的構造函數的其余部分。

5、對子類成員數據按照它們聲明的順序初始化,執行子類構造函數的其余部分。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 体育| 克什克腾旗| 屏南县| 夹江县| 太仓市| 东明县| 博客| 阿瓦提县| 梅河口市| 梅州市| 左云县| 东丰县| 寿光市| 广安市| 蒙城县| 枞阳县| 肇源县| 积石山| 彭州市| 都昌县| 逊克县| 武陟县| 娱乐| 十堰市| 迭部县| 北安市| 苏尼特右旗| 宣武区| 长垣县| 东莞市| 义马市| 阿拉善盟| 信阳市| 靖江市| 定远县| 台南县| 铜梁县| 朝阳区| 宁武县| 津市市| 平度市|