Re: [問題] 繼承和建構子
※ 引述《sioo (加油加油)》之銘言:
: ※ 引述《sioo (加油加油)》之銘言:
: : 不好意思,我不太了解..
: : 如果我在A裡面沒有寫任何建構子,不是應該要自動產生一個無參數的就構子嗎?
: : 還是說一個類別要被別人繼承的時候,它就一定要有一個無參數的建構子
: : 謝謝您的回答
: 請問這種說法對嗎?
: 如果子類別的建構子沒有使用super來呼叫父類別的建構子
: 則compiler會自動幫子類別去呼叫父類別的無引數的建構子
: 可是當我B類別裡面沒去呼叫A類別的建構子,compiler自動幫我呼叫時
: 因為A類別裡面我沒有任何的建構子,compiler不是應該自動幫我產生一
: 個無參數的建構子嗎
: 因此我還是搞不懂為什麼A類別裡面要自己去寫一個無參數的建構子
你說的沒錯...當你沒有為 A 做一個建構子時
它是會自動幫你做一個沒有參數的建構子
但你在 A 的 Class 中,幫它做了一個 A(int num)的建構子了
所以編譯時並不會再幫你做一個無參數的建構子
而你在 B 中,雖然繼承了 A,但建構子 B(int num)中卻沒加上super
所以它還是幫你去呼叫了 super()
我想,你可能必須自己呼叫 super(num) 才能編譯成功吧!!!
--
◤城市.角落◢「簡單的說,這座城市一點都不美。幸好有某些傻瓜存在。」
ID:CHIEN-HSIANG 工作只是生活的輔助,而不是全部
Basketball - Program - Read - Movie - Lifeful
◎職業:不務正業工程師 Java DotNet System Analyse & Design
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.0.243
討論串 (同標題文章)