作者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