3 回答

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

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