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