后期自我绑定和静态绑定

时间:2013-09-30 15:47:36

标签: oop

我正在参加Pharo课程(Smalltalk实施)。我不太了解这种语言的细节。

教授谈到后期自我绑定静态超级绑定。根据我对静态绑定的理解,编译器在编译时知道我的超类是什么。这似乎是合乎逻辑的,因为没有多重继承(据我所知),因此只能有一个超级。所以它只需要查看继承树并获取父级。

迟到的自我绑定是我不太了解的。我怎么看,编译器可以知道它正在编译哪个类,所以它知道类型。那么为什么不能确定它是否正在编译类Foo,那自我指向Foo?也就是说,如果self总是指向类Foo的当前实例?

1 个答案:

答案 0 :(得分:0)

因为如果BarFoo的子类,并且baz中定义了方法Foo,则可以从{{{{}}的实例调用baz 1}},在这种情况下,Bar的类将是self,而不是Bar