第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

即使子類已經(jīng)定義了構(gòu)造函數(shù),父類是否也總是需要一個(gè)默認(rèn)的或無參數(shù)的構(gòu)造函數(shù)?

即使子類已經(jīng)定義了構(gòu)造函數(shù),父類是否也總是需要一個(gè)默認(rèn)的或無參數(shù)的構(gòu)造函數(shù)?

胡子哥哥 2023-04-26 14:32:58
我無法編譯此代碼。class Horse {    private int age;    Horse(int age) {        this.age = age;    }}class Pony extends Horse {    private int age;    Pony(int age) { //here compiler complains about no default constructor in parent class        this.age = age;    }}我知道當(dāng)父類只有帶有參數(shù)的構(gòu)造函數(shù)時(shí),您必須為子類定義一個(gè)構(gòu)造函數(shù),這就是我所做的。但是,編譯器抱怨父類沒有默認(rèn)構(gòu)造函數(shù)。我得出父類總是需要默認(rèn)或無參數(shù)構(gòu)造函數(shù)的結(jié)論是否正確?如果我希望父類和子類只有帶參數(shù)的構(gòu)造函數(shù)怎么辦?
查看完整描述

2 回答

?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

我得出父類總是需要默認(rèn)或無參數(shù)構(gòu)造函數(shù)的結(jié)論是否正確?


不。子類構(gòu)造函數(shù)必須做的第一件事是調(diào)用其中一個(gè)超類構(gòu)造函數(shù)。如果你不這樣做,那么編譯器會為你調(diào)用超類的無參數(shù)構(gòu)造函數(shù)。但是,如果超類沒有,那當(dāng)然會失敗。


你的代碼應(yīng)該是:


class Pony extends Horse {

    Pony(int age) {

        super(age);

    }

}

看,超類已經(jīng)有一個(gè)年齡字段,可能還有使用該字段的方法。所以在子類中重新聲明一個(gè)是錯(cuò)誤的并且適得其反。


查看完整回答
反對 回復(fù) 2023-04-26
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

要使其編譯為您需要調(diào)用super(int)而不是super()隱式調(diào)用。

Pony(int?age)?{
????super(age);
????????this.age?=?age;
}

然后您可能會注意到兩者Horse都有Pony完全相同的字段,其中包含完全相同的數(shù)據(jù)。如果類基于 ( ) 已經(jīng)定義了這個(gè)字段,為什么還Pony需要這個(gè)字段?agePonyHorse

Pony(int?age)?{
????super(age);
}

這就是繼承的美妙之處:您可以使用基類中已經(jīng)編寫的任何內(nèi)容。


但是,編譯器抱怨父類沒有默認(rèn)構(gòu)造函數(shù)。

它抱怨是因?yàn)?,正如我上面提到的,它無法調(diào)用super().

如果構(gòu)造函數(shù)體不以顯式構(gòu)造函數(shù)調(diào)用開始,并且聲明的構(gòu)造函數(shù)不是原始類 Object 的一部分,則構(gòu)造函數(shù)體隱式地以超類構(gòu)造函數(shù)調(diào)用“super();”開始,這是對構(gòu)造函數(shù)的調(diào)用它的直接超類不帶參數(shù)。


如果我希望父類和子類只有帶參數(shù)的構(gòu)造函數(shù)怎么辦?

然后子類應(yīng)該總是明確聲明它想調(diào)用父類的構(gòu)造函數(shù)。


我得出父類總是需要默認(rèn)或無參數(shù)構(gòu)造函數(shù)的結(jié)論是否正確?

不,有一個(gè)沒有默認(rèn)構(gòu)造函數(shù)的父類是可以的,只要它的子類不調(diào)用super().


查看完整回答
反對 回復(fù) 2023-04-26
  • 2 回答
  • 0 關(guān)注
  • 138 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號