這篇文章將為大家詳細(xì)講解有關(guān)利用Java怎么在繼承關(guān)系下調(diào)用構(gòu)造方法,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

詳解 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的無參的構(gòu)造方法,則在調(diào)用子類的構(gòu)造方法前會(huì)自動(dòng)先調(diào)用該無參的構(gòu)造方法。如果父類只有有參的構(gòu)造方法,沒有無參的構(gòu)造方法,則子類必須在構(gòu)造方法中必須顯式調(diào)用super(參數(shù)列表)來指定某個(gè)有參的構(gòu)造方法。如果父類定義有無參的構(gòu)造方法,但無參的構(gòu)造方法聲明為private,則子類同樣必須在構(gòu)造方法中必須顯式調(diào)用super(參數(shù)列表)來指定某個(gè)有參的構(gòu)造方法。如果父類沒有其他的有參構(gòu)造方法,則子類無法創(chuàng)建。
| 有父類 | 子類 | ||
|---|---|---|---|
| Public無參構(gòu)造方法 | Private無參構(gòu)造方法 | 有參構(gòu)造方法 | |
| 無 | 無 | 無 | 所有構(gòu)造方法都會(huì)調(diào)用父類的默認(rèn)構(gòu)造方法 |
| 有 | 無 | 無 | 所有構(gòu)造方法都會(huì)調(diào)用定義的無參構(gòu)造方法 |
| 無 | 無 | 有 | 所有構(gòu)造方法都必須指定調(diào)用某個(gè)有參的構(gòu)造方法,或通過this調(diào)用某個(gè)其他的構(gòu)造方法。 |
| 有 | 無 | 有 | 可以指定調(diào)用某個(gè)構(gòu)造方法,如果沒有指定,則調(diào)用無參構(gòu)造方法。 |
| 無 | 有 | 無 | 子類無法構(gòu)造(父類無法派生子類) |
| 無 | 有 | 有 | 所有構(gòu)造方法都必須指定調(diào)用某個(gè)有參的構(gòu)造方法,或通過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)前名稱:利用Java怎么在繼承關(guān)系下調(diào)用構(gòu)造方法-創(chuàng)新互聯(lián)
本文路徑:http://chinadenli.net/article22/cecojc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)站策劃、品牌網(wǎng)站建設(shè)、網(wǎng)站改版、App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容