Re: Constructor與class的繼承
※ 引述《oishii (喔帥)》之銘言:
: 我想請教一個問題,如果母類別沒有no args的constructor,如下
: class A{
: A (String s){}
: }
: 他的子類別 class B extends A ,理論上不會有default constructor
: 必須自己定義,是這樣子嗎? 如果是話,假設我自己定義一個constructor如下
class B是有default constructor的...default constructor 只要在你沒自行定義
constructor時,就會產生,而你這裡的問題在於,父類別的建構子是有引數的,
而在class B的建構子中(不論是default或是user define)並沒有輸入一個符合父類
別建構子引數的super()呼叫,因為,每個建構子的第一行都會呼叫super(),沒打的
話會以預設的super()也就是沒有引數的,因為在你的問題中你的父類別的建構子是
有引數的,所以compile會出現錯誤
: class B extends A{
: B() {}
: }
: 這樣子似乎是無法compile,因為沒有super()存在,不過這樣就可以
: B(){ super(new String());}
: ,那麼我想請問的是,在B的建構子中,如果不自己寫的話,有辦法去呼叫A的建構子嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.39.173.66
討論串 (同標題文章)