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

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

Java錯誤:默認構造函數(shù)未定義隱式超級構造函數(shù)

Java錯誤:默認構造函數(shù)未定義隱式超級構造函數(shù)

慕斯王 2019-07-04 16:13:06
Java錯誤:默認構造函數(shù)未定義隱式超級構造函數(shù)我有一些簡單的Java代碼,它的結構與此類似:abstract public class BaseClass {     String someString;     public BaseClass(String someString) {         this.someString = someString;     }     abstract public String getName();}public class ACSubClass extends BaseClass {     public ASubClass(String someString) {         super(someString);     }     public String getName() {         return "name value for ASubClass";     }}我將有相當多的子類BaseClass,每個實現(xiàn)getName()方法以自己的方式(模板法模式).這很好用,但我不喜歡在子類中使用冗余構造函數(shù)。這是更多的類型,這是很難維護。如果我要更改BaseClass構造函數(shù),我將不得不更改所有子類。當我從子類中刪除構造函數(shù)時,會得到以下編譯時錯誤:Implicit super constructor BaseClass() is undefined for default constructor. Must define an explicit constructor我想做的事有可能嗎?
查看完整描述

3 回答

?
呼如林

TA貢獻1798條經(jīng)驗 獲得超3個贊

獲得此錯誤是因為沒有構造函數(shù)的類具有違約構造函數(shù),它沒有參數(shù),相當于以下代碼:

public ACSubClass() {
    super();}

但是,由于BaseClass聲明了構造函數(shù)(因此沒有編譯器將提供的默認、無Arg構造函數(shù)),這是非法的-擴展BaseClass的類不能調(diào)用super();因為BaseClass中沒有無參數(shù)構造函數(shù)。

這可能有點違背直覺,因為您可能認為子類自動具有基類所具有的任何構造函數(shù)。

最簡單的方法是基類不聲明構造函數(shù)(因此具有默認的、非Arg構造函數(shù))或聲明的no-arg構造函數(shù)(單獨或與任何其他構造函數(shù)一起)。但是這種方法通常不能應用,因為您需要將任何參數(shù)傳遞到構造函數(shù)中來構造類的合法實例。


查看完整回答
反對 回復 2019-07-04
?
青春有我

TA貢獻1784條經(jīng)驗 獲得超8個贊

對于那些在谷歌上搜索這個錯誤并到達這里的人來說,可能還有另一個原因來接收它。Eclipse在項目設置-系統(tǒng)配置不匹配時會出現(xiàn)此錯誤。

例如,如果將Java1.7項目導入Eclipse,并且沒有正確設置1.7,則會得到此錯誤。那你要么去Project - Preference - Java - Compilerswitch to 1.6 or earlier;或者去Window - Preferences - Java - Installed JREs并添加/修復您的JRE 1.7安裝。


查看完整回答
反對 回復 2019-07-04
  • 3 回答
  • 0 關注
  • 1277 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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