Re: [問題] constructor error(extends時)

看板java作者 (!H45)時間18年前 (2007/04/16 22:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《tanx (arctanx)》之銘言: : ※ 引述《adrianshum (Alien)》之銘言: : : 這問題該被收到精華區了吧? o_oa : : child class 的 constructor 如果在起 : : 初沒有用 super(....) 去 invoke parent class : : 的某 constructor, 就會被自動加入 invoke super() : : (無參數 constructor) : : 由於你的 parent class 沒有提供無參數 constructor : : 所以出問題了. : : 解決方法我想已經有很大提示了, 自己試試吧 : : Alien : 請問 : 是不是我想的這樣 : class Test : 沒有定constructor : 所以compile時會插入一個default constructor (無參數) : 由於Test 繼承 class A : 而這Test的 default constructor雖然沒內容 : 但是compile會自動呼叫 A的default constructor : 而class A裡面由於沒有定義無參數的constructor : 所以錯誤? : 不知道想的對不對 大致正確,因為 class Test 沒有定義任何 constructor 所以 compiler 會自動在 class Test 中加一段: Test() { super(); } 另外, A 已經定義了 constructor: A(int x) 所以 compiler 不會自動加 constructor: A() 進去 回過頭來看 Test 類別中的 Test() { super(); } 觀察這個 super(); 的行為.... 因為 A() 未定義,所以 super() 會發生錯誤。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.205.85
文章代碼(AID): #168ugO0H (java)
文章代碼(AID): #168ugO0H (java)