亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談Java中父類與子類的加載順序詳解

 更新時間:2013年06月04日 16:32:27   作者:  
本篇文章是對Java中父類與子類的加載順序進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
復(fù)制代碼 代碼如下:

class Parent {
    // 靜態(tài)變量
    public static String p_StaticField = "父類--靜態(tài)變量";
    // 變量(其實這用對象更好能體同這一點,如專門寫一個類的實例)
  
    //如果這個變量放在初始化塊的后面,是會報錯的,因為你根本沒有被初始化
    public String p_Field = "父類--變量";
    // 靜態(tài)初始化塊
    static {
        System.out.println(p_StaticField);
        System.out.println("父類--靜態(tài)初始化塊");
    }
    // 初始化塊
    {
        System.out.println(p_Field);
        System.out.println("父類--初始化塊");
    }
    // 構(gòu)造器
    public Parent() {
        System.out.println("父類--構(gòu)造器");
    }
}
public class SubClass extends Parent {
    // 靜態(tài)變量
    public static String s_StaticField = "子類--靜態(tài)變量";
    // 變量
    public String s_Field = "子類--變量";
    // 靜態(tài)初始化塊
    static {
        System.out.println(s_StaticField);
        System.out.println("子類--靜態(tài)初始化塊");
    }
    // 初始化塊
    {
        System.out.println(s_Field);
        System.out.println("子類--初始化塊");
    }
    // 構(gòu)造器
    public SubClass() {
        //super();
        System.out.println("子類--構(gòu)造器");
    }
    // 程序入口
    public static void main(String[] args) {
        System.out.println("*************in main***************");
        new SubClass();
        System.out.println("*************second subClass***************");
        new SubClass();
    }
}

輸出結(jié)果
父類--靜態(tài)變量
父類--靜態(tài)初始化塊
子類--靜態(tài)變量
子類--靜態(tài)初始化塊
*************in main***************
父類--變量
父類--初始化塊
父類--構(gòu)造器
子類--變量
子類--初始化塊
子類--構(gòu)造器
*************second subClass***************
父類--變量
父類--初始化塊
父類--構(gòu)造器
子類--變量
子類--初始化塊
子類--構(gòu)造器

結(jié)果分析:
很顯然在加載main方法后,靜態(tài)變量不管父類還是子類的都執(zhí)行了,然后才是父類和子類的的普通變量和構(gòu)造器。這是因為,當(dāng)要創(chuàng)建子類這個對象時,發(fā)現(xiàn)這個類需要一個父類,所以把父類的.class加載進(jìn)來,然后依次初始化其普通變量和初始化代碼塊,最后其構(gòu)造器,然后可以開始子類的工作,把子類的.class加載進(jìn)來,在做子類的工作。

另外在Java中子類中都會有默認(rèn)的調(diào)用父類的默認(rèn)構(gòu)造函數(shù)即super(),當(dāng)僅僅有默認(rèn)構(gòu)造函數(shù)里
Java替你做了,我們可以做個實驗,如果在父類中注釋掉默認(rèn)構(gòu)造函數(shù),加一個有參的構(gòu)造函數(shù)時,如果
子類中不加super(argument),此時會報語法錯誤
如果我們把Main方法中的內(nèi)容全注釋掉,你會發(fā)現(xiàn)只會輸出

    父類--靜態(tài)變量
    父類--靜態(tài)初始化塊
    子類--靜態(tài)變量
        子類--靜態(tài)初始化塊
        其它不會輸出了。原因呢? 還要研究

相關(guān)文章

  • Java8特性使用Function代替分支語句

    Java8特性使用Function代替分支語句

    這篇文章主要介紹了Java8特性使用Function代替分支語句,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • SSH原理及兩種登錄方法圖文詳解

    SSH原理及兩種登錄方法圖文詳解

    SSH(Secure Shell)是一套協(xié)議標(biāo)準(zhǔn),可以用來實現(xiàn)兩臺機(jī)器之間的安全登錄以及安全的數(shù)據(jù)傳送,其保證數(shù)據(jù)安全的原理是非對稱加密。本文通過圖文并茂的形式給大家介紹了SSH原理及兩種登錄方法,一起看看吧
    2018-08-08
  • Spring Boot如何使用JDBC獲取相關(guān)的數(shù)據(jù)詳解

    Spring Boot如何使用JDBC獲取相關(guān)的數(shù)據(jù)詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot如何使用JDBC獲取相關(guān)數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java中的迭代器和foreach原理

    Java中的迭代器和foreach原理

    這篇文章主要介紹了Java中的迭代器和foreach原理,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-09-09
  • Spring?Boot?Actuator管理日志的實現(xiàn)

    Spring?Boot?Actuator管理日志的實現(xiàn)

    本文主要介紹了Spring?Boot?Actuator管理日志的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Java在創(chuàng)建文件時指定編碼的實現(xiàn)方法

    Java在創(chuàng)建文件時指定編碼的實現(xiàn)方法

    本文主要介紹了Java在創(chuàng)建文件時指定編碼的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Java使用poi包讀取Excel文檔代碼分享

    Java使用poi包讀取Excel文檔代碼分享

    這篇文章主要介紹了Java使用poi包讀取Excel文檔代碼分享,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • 深入淺析MyBatis foreach標(biāo)簽

    深入淺析MyBatis foreach標(biāo)簽

    Mybatis foreach 標(biāo)簽用于循環(huán)語句,它很好的支持了數(shù)據(jù)和 List、set 接口的集合,并對此提供遍歷的功能,本文給大家介紹MyBatis foreach標(biāo)簽的相關(guān)知識,感興趣的朋友一起看看吧
    2021-09-09
  • SpringBoot快速構(gòu)建應(yīng)用程序方法介紹

    SpringBoot快速構(gòu)建應(yīng)用程序方法介紹

    這篇文章主要介紹了SpringBoot快速構(gòu)建應(yīng)用程序方法介紹,涉及SpringBoot默認(rèn)的錯誤頁面,嵌入式Web容器層面的約定和定制等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。
    2017-11-11
  • 深入探究Java線程不安全的原因與解決

    深入探究Java線程不安全的原因與解決

    線程不安全這個問題,一般在學(xué)Java時,我們老師會讓我們背誦一段長長的話。"當(dāng)不同線程同時能訪問同一個變量時,可能會導(dǎo)致線程不安全"。實際上,這句話重點想突出的只有原子性。而我們往往考慮線程不安全的原因,會從三方面進(jìn)行考慮:就是原子性,可見性,有序性
    2022-04-04

最新評論