亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

定義一個有參的父類構造方法,同時子類的構造方法中寫了super()了,這樣情況也報錯。

public?Animal(int?age){
this.age=age
}


pubilc?Cat(){
????super();
????System.out.println("子類構造方法執行");
}

在不改變父類構造方法的前提下,子類構造方法怎么修改才能不報錯?

super()括號中添加一個int的數字才能不報錯,這是為什么呢

正在回答

3 回答

父類中定義了有參構造方法之后會覆蓋掉原來系統默認的無參構造方法,所以super();報錯

在原有程序基礎上可以顯式定義父類的無參構造方法或者super(參數);

也可以把父類有參構造方法刪了

因為為了保證子類所有從父類繼承的屬性都能夠正確初始化,所以java虛擬機會先調用父類的無參構造方法,只有有參構造方法的話,必須顯式調用super(參數);


0 回復 有任何疑惑可以回復我~
  1. 不寫構造方法,默認無參

  2. 只寫一個有參,默認有參,且會覆蓋無參,導致無參不好用

  3. 有參無參都寫,默認都有,都好用


2 回復 有任何疑惑可以回復我~

定義了一個有參的構造方法以后,系統不在添加無參的構造方法,那super()的時候就找不到無參的構造方法,所以就報錯了吧,我是這么理解的

0 回復 有任何疑惑可以回復我~
#1

所念隔遠鄉 提問者

說明super();這樣寫是無參,但是super(10);這樣寫的話就不會報錯了
2019-04-23 回復 有任何疑惑可以回復我~
#2

AndrewOVO 回復 所念隔遠鄉 提問者

因為你super()這樣寫的是無參的Animal類,你super(10);這樣寫的就是有參的Animal類,里面的10就是你設置的Animal age的大小
2019-09-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

定義一個有參的父類構造方法,同時子類的構造方法中寫了super()了,這樣情況也報錯。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號