課程
/后端開發
/Java
/Java入門第二季 升級版
子類構造函數必須調用父類的構造函數,但是如果構造函數有多個到底是調用哪個呢?如果子類有顯式調用父類構造函數,是不是就是說父類不管有沒有無參構造函數都不會報錯嗎?
2014-08-02
源自:Java入門第二季 升級版 9-7
正在回答
1.如果子類未顯示調用父類構造函數,則默認只會調用父類無參的構造函數
2.如果子類有顯式調用父類構造函數,則只會調用指定的父類構造函數,父類可以沒有無參構造函數
初見4071
1.當子類中隱式調用父類的構造方法,(即不寫super();),則默認調用父類中的無參構造方法
2.當子類中隱式調用父類的構造方法,而父類中沒有無參的構造方法,如只有有參的構造方法,則系統會報錯
3當我們在創建父類對象,在main方法中用的是有參的的構造即:Animal a=new Animal(10);
在父類中我們創建一個有參的構造方法:
public Animal(int age1){
System.out.println("父類的構造方法執行了!!!!!");
System.out.println(age1);
在子類中我們調用super(10);
當程序運行時,我們調用的就是父類中有參的構造方法了。
最后糾正一下,java中只有方法,沒有函數的叫法。
3.當父類中寫了有參構造函數,則父類默認的無參構造函數被覆蓋。此時子類必須顯式在構造函數里調用父類的有參構造函數【super(參數)放構造函數第一句】。
建議:當父類有參構造函數時,建議寫上無參構造函數。
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
1 回答
2 回答
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2014-08-03
1.如果子類未顯示調用父類構造函數,則默認只會調用父類無參的構造函數
2.如果子類有顯式調用父類構造函數,則只會調用指定的父類構造函數,父類可以沒有無參構造函數
2015-07-25
1.當子類中隱式調用父類的構造方法,(即不寫super();),則默認調用父類中的無參構造方法
2.當子類中隱式調用父類的構造方法,而父類中沒有無參的構造方法,如只有有參的構造方法,則系統會報錯
3當我們在創建父類對象,在main方法中用的是有參的的構造即:Animal a=new Animal(10);
在父類中我們創建一個有參的構造方法:
public Animal(int age1){
System.out.println("父類的構造方法執行了!!!!!");
System.out.println(age1);
在子類中我們調用super(10);
當程序運行時,我們調用的就是父類中有參的構造方法了。
最后糾正一下,java中只有方法,沒有函數的叫法。
2014-08-06
3.當父類中寫了有參構造函數,則父類默認的無參構造函數被覆蓋。此時子類必須顯式在構造函數里調用父類的有參構造函數【super(參數)放構造函數第一句】。
建議:當父類有參構造函數時,建議寫上無參構造函數。