欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解 Java繼承關(guān)系下的構(gòu)造方法調(diào)用

 更新時(shí)間:2017年10月13日 11:46:04   作者:ccpat  
這篇文章主要介紹了詳解 Java繼承關(guān)系下的構(gòu)造方法調(diào)用的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下

詳解 Java繼承關(guān)系下的構(gòu)造方法調(diào)用

在Java中創(chuàng)建一個(gè)類的對(duì)象時(shí),如果該類存在父類,則先調(diào)用父類的構(gòu)造方法,然后再調(diào)用子類的構(gòu)造方法。如果父類沒有定義構(gòu)造方法,則調(diào)用編譯器自動(dòng)創(chuàng)建的不帶參數(shù)的默認(rèn)構(gòu)造方法。如果父類定義了public的無(wú)參的構(gòu)造方法,則在調(diào)用子類的構(gòu)造方法前會(huì)自動(dòng)先調(diào)用該無(wú)參的構(gòu)造方法。如果父類只有有參的構(gòu)造方法,沒有無(wú)參的構(gòu)造方法,則子類必須在構(gòu)造方法中必須顯式調(diào)用super(參數(shù)列表)來(lái)指定某個(gè)有參的構(gòu)造方法。如果父類定義有無(wú)參的構(gòu)造方法,但無(wú)參的構(gòu)造方法聲明為private,則子類同樣必須在構(gòu)造方法中必須顯式調(diào)用super(參數(shù)列表)來(lái)指定某個(gè)有參的構(gòu)造方法。如果父類沒有其他的有參構(gòu)造方法,則子類無(wú)法創(chuàng)建。

有父類 子類
Public無(wú)參構(gòu)造方法 Private無(wú)參構(gòu)造方法 有參構(gòu)造方法
無(wú) 無(wú) 無(wú) 所有構(gòu)造方法都會(huì)調(diào)用父類的默認(rèn)構(gòu)造方法
無(wú) 無(wú) 所有構(gòu)造方法都會(huì)調(diào)用定義的無(wú)參構(gòu)造方法
無(wú) 無(wú) 所有構(gòu)造方法都必須指定調(diào)用某個(gè)有參的構(gòu)造方法,或通過(guò)this調(diào)用某個(gè)其他的構(gòu)造方法。
無(wú) 可以指定調(diào)用某個(gè)構(gòu)造方法,如果沒有指定,則調(diào)用無(wú)參構(gòu)造方法。
無(wú) 無(wú) 子類無(wú)法構(gòu)造(父類無(wú)法派生子類)
無(wú) 所有構(gòu)造方法都必須指定調(diào)用某個(gè)有參的構(gòu)造方法,或通過(guò)this調(diào)用某個(gè)其他的構(gòu)造方法。

例如:

class Parent {
  private String pString;
  Parent(){
    pString = "p1";
  }
}

class Child extends Parent {
  private String cString;
  Child() {
    cString = "c1";
  }
}

當(dāng)Child對(duì)象創(chuàng)建時(shí),會(huì)先調(diào)用父類Parent的構(gòu)造方法將pString初始化為”p1”,然后再調(diào)用Child的構(gòu)造方法,將cString初始化為”c1”。

class Parent {
  private String pString;
  private Parent(){
    pString = "p1";
  }
  Parent(String s){
    pString = "p2";
  }
}

class Child extends Parent {
  private String cString;
  Child() {
    super("");
    cString = "c1";
  }
}

由于父類定義了private的無(wú)參構(gòu)造方法,因此,在子類中必須顯式指定調(diào)用某個(gè)有參的構(gòu)造方法。

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Mybatis中collection和association的使用區(qū)別詳解

    Mybatis中collection和association的使用區(qū)別詳解

    這篇文章主要介紹了Mybatis中collection和association的使用區(qū)別詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • SpringBoot參數(shù)校驗(yàn)之@Valid的使用詳解

    SpringBoot參數(shù)校驗(yàn)之@Valid的使用詳解

    這篇文章主要通過(guò)示例為大家詳細(xì)介紹一下介紹了SpringBoot參數(shù)校驗(yàn)中@Valid的使用方法,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-06-06
  • Maven項(xiàng)目外部jar包導(dǎo)入的實(shí)現(xiàn)示例

    Maven項(xiàng)目外部jar包導(dǎo)入的實(shí)現(xiàn)示例

    在Maven項(xiàng)目里,我們經(jīng)常需要導(dǎo)入jar包依賴,本文主要介紹了Maven項(xiàng)目外部jar包導(dǎo)入的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • @RunWith(SpringJUnit4ClassRunner.class)報(bào)錯(cuò)問(wèn)題及解決

    @RunWith(SpringJUnit4ClassRunner.class)報(bào)錯(cuò)問(wèn)題及解決

    這篇文章主要介紹了@RunWith(SpringJUnit4ClassRunner.class)報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • java從文件中讀取數(shù)據(jù)的六種方法

    java從文件中讀取數(shù)據(jù)的六種方法

    本文主要介紹了java從文件中讀取數(shù)據(jù)的方法,詳細(xì)的介紹了六種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java如何使用JSR303校驗(yàn)數(shù)據(jù)與自定義校驗(yàn)注解

    Java如何使用JSR303校驗(yàn)數(shù)據(jù)與自定義校驗(yàn)注解

    這篇文章主要介紹了Java如何使用JSR303校驗(yàn)數(shù)據(jù)與自定義校驗(yàn)注解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java中JsonObject與JsonArray轉(zhuǎn)換方法實(shí)例

    java中JsonObject與JsonArray轉(zhuǎn)換方法實(shí)例

    在項(xiàng)目日常開發(fā)中常常會(huì)遇到JSONArray和JSONObject的轉(zhuǎn)換,很多公司剛?cè)肼毜男∶刃聲?huì)卡在這里,下面這篇文章主要給大家介紹了關(guān)于java中JsonObject與JsonArray轉(zhuǎn)換方法的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Mac?Maven環(huán)境搭建安裝和配置超詳細(xì)步驟

    Mac?Maven環(huán)境搭建安裝和配置超詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于Mac?Maven環(huán)境搭建安裝和配置的超詳細(xì)步驟,Maven是一種常用的Java構(gòu)建工具,它可以自動(dòng)化構(gòu)建、測(cè)試和打包Java項(xiàng)目,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 解析java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別

    解析java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別

    這篇文章主要介紹了java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • window系統(tǒng)安裝jdk jre的教程圖解

    window系統(tǒng)安裝jdk jre的教程圖解

    java開發(fā)少不了安裝jdk,jdk可以同時(shí)安裝多個(gè)版本,只要在項(xiàng)目部署時(shí)注意切換版本選擇,下面小編給大家?guī)?lái)了window系統(tǒng)安裝jdk jre的教程圖解,感興趣的朋友一起看看吧
    2018-08-08

最新評(píng)論