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

看板java作者 (arctanx)時間18年前 (2007/04/16 22:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《adrianshum (Alien)》之銘言: : ※ 引述《tanx (arctanx)》之銘言: : : 新手發問 : : 這是課本後面習題 : : class A : : { : : int i; : : public A(int i) : : { : : this.i=i; : : } : : } : : public class Test extends A{ : : public static void main(String[] arg){ : : A aaa=new A(10); : : System.out.println(aaa.i); : : } : : } : : error message: : : D:\java\debug>javac Test.java : : Test.java:12: cannot find symbol : : symbol : constructor A() : : location: class A : : public class Test extends A{ : : ^ : : 1 error : : 請問 : : 為什麼有錯ㄚ? 先謝謝摟~ : 這問題該被收到精華區了吧? 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 所以錯誤? 而只要在Test理定義一個constructor 內容去call super(參數) 這樣就OK? 不知道想的對不對 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.201.115 ※ 編輯: tanx 來自: 59.112.201.115 (04/16 22:34)
文章代碼(AID): #168uZQi0 (java)
討論串 (同標題文章)
文章代碼(AID): #168uZQi0 (java)