作者adrianshum (Alien)
看板Ruby
標題Re: [問題] super真的不能呼叫其他方法嗎?
時間Tue Dec 9 14:14:20 2008
※ 引述《godfat (godfat 真常)》之銘言:
: ※ 引述《zero00072 (叮釘無產者)》之銘言:
: : 環境:
: : Ruby 1.8.7
: : 狀況:
: : 我們老師在上「物件導向程式設計」時,選了Java來當他的教學語言
: : (我偏要跟他唱反調,用Ruby來寫……,還附上Java的程式碼,免得被當),
: 很好,我很感動 XD
: : 但現在,我們老師教到繼承,Java裡有super()的方法可以用,如下:
: 事實上這個 super 跟 this 一樣,不是 method, 可以想成
: 某種特別的 variable (reference), 所以有型別的效力在。
: 比較像是 scoping 用的東西。
在 java 中, super/this 有兩種情況會出現
一種像你所說, 是 reference
另一種是作為 invoke 其他 constructor 之用,
而這個和前面說的是不同的.
this(....) 是用以 invoke 其他 overriden 的
constructor 之用, super(...) 則是用以 invoke
某 parent class constructor 之用.
雖然名字一樣 (this/super) 但實際是完全不同的
東西, 不宜混為一談
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
1F:推 godfat:太久沒寫,都忘記還有這個了,感謝補充 XD 12/09 15:31
2F:→ godfat:另應為 overloaded 的 constructor? 12/09 15:32