定義一個有參的父類構造方法,同時子類的構造方法中寫了super()了,這樣情況也報錯。
public?Animal(int?age){ this.age=age } pubilc?Cat(){ ????super(); ????System.out.println("子類構造方法執行"); }
在不改變父類構造方法的前提下,子類構造方法怎么修改才能不報錯?
super()括號中添加一個int的數字才能不報錯,這是為什么呢
public?Animal(int?age){ this.age=age } pubilc?Cat(){ ????super(); ????System.out.println("子類構造方法執行"); }
在不改變父類構造方法的前提下,子類構造方法怎么修改才能不報錯?
super()括號中添加一個int的數字才能不報錯,這是為什么呢
2019-04-23
舉報
2019-07-28
父類中定義了有參構造方法之后會覆蓋掉原來系統默認的無參構造方法,所以super();報錯
在原有程序基礎上可以顯式定義父類的無參構造方法或者super(參數);
也可以把父類有參構造方法刪了
因為為了保證子類所有從父類繼承的屬性都能夠正確初始化,所以java虛擬機會先調用父類的無參構造方法,只有有參構造方法的話,必須顯式調用super(參數);
2019-04-30
不寫構造方法,默認無參
只寫一個有參,默認有參,且會覆蓋無參,導致無參不好用
有參無參都寫,默認都有,都好用
2019-04-23
定義了一個有參的構造方法以后,系統不在添加無參的構造方法,那super()的時候就找不到無參的構造方法,所以就報錯了吧,我是這么理解的