3 回答

TA貢獻(xiàn)452條經(jīng)驗(yàn) 獲得超796個(gè)贊
沒(méi)有給類(lèi)寫(xiě)構(gòu)造函數(shù)時(shí),系統(tǒng)默認(rèn)有個(gè)無(wú)參的構(gòu)造函數(shù);
1、一旦你手動(dòng)寫(xiě)了構(gòu)造函數(shù),就會(huì)覆蓋默認(rèn)的構(gòu)造函數(shù);(JVM不會(huì)在創(chuàng)建默認(rèn)的了)
2、當(dāng)主動(dòng)寫(xiě)帶參數(shù)的構(gòu)造函數(shù)時(shí),最后寫(xiě)個(gè)無(wú)參的構(gòu)造函數(shù),避免有時(shí)不想調(diào)有參構(gòu)造函數(shù)時(shí),可以調(diào)用無(wú)參的。
子類(lèi)中當(dāng)父類(lèi)沒(méi)有無(wú)參的構(gòu)造方法時(shí)就不能夠使用無(wú)參的構(gòu)造方法
因?yàn)槊總€(gè)對(duì)象在構(gòu)造成功以前,都必須先構(gòu)造其父類(lèi)
你報(bào)錯(cuò)的原因,是因?yàn)槟阍谧宇?lèi)構(gòu)造方法中沒(méi)有調(diào)用了父類(lèi)有參的構(gòu)造方法,而編譯器發(fā)現(xiàn),父類(lèi)中也沒(méi)有無(wú)參的構(gòu)造方法,找不到你那個(gè)對(duì)應(yīng)的構(gòu)造方法了,所以它認(rèn)為你的父類(lèi)對(duì)象構(gòu)造失敗
類(lèi)被繼承的時(shí)候,如果你沒(méi)有特定的super調(diào)用父類(lèi)的帶參構(gòu)造方法時(shí),系統(tǒng)會(huì)首先調(diào)用父類(lèi)的無(wú)參構(gòu)造方法
如果你在父類(lèi)中沒(méi)有寫(xiě)無(wú)參構(gòu)造方法,那么在子類(lèi)的構(gòu)造方法中必須顯示的調(diào)用父類(lèi)中的有參數(shù)的構(gòu)造方法(寫(xiě)在第一句)。
方便請(qǐng)采納!

TA貢獻(xiàn)948條經(jīng)驗(yàn) 獲得超1109個(gè)贊
子類(lèi)的構(gòu)造默認(rèn)會(huì)調(diào)用父類(lèi)的無(wú)參構(gòu)造。而無(wú)參構(gòu)造默認(rèn)是有的,但是當(dāng)你手動(dòng)定義了有參構(gòu)造時(shí),無(wú)參構(gòu)造就不會(huì)有了,此時(shí)需要顯式地寫(xiě)出無(wú)參構(gòu)造
添加回答
舉報(bào)