Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 后期自绑定和静态绑定_Oop - Fatal编程技术网

Oop 后期自绑定和静态绑定

Oop 后期自绑定和静态绑定,oop,Oop,我正在学习Pharo Smalltalk实现课程。关于这门语言,有一个小细节我不太了解 教授谈到了后期自绑定和静态超绑定。根据我对静态绑定的理解,编译器在编译时知道我的超类是什么。这似乎合乎逻辑,因为据我所知,目前还没有多重继承,所以只能有一个超级继承。因此,它只需查看继承树并获取父级 后期的自动装订是我不太懂的。我的看法是,如果你愿意,编译器可以知道它在编译哪个类,所以它知道类型。那么为什么它不能确定它是否在编译类Foo,self指向Foo?也就是说,如果self始终指向类Foo的当前实例?,

我正在学习Pharo Smalltalk实现课程。关于这门语言,有一个小细节我不太了解

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

后期的自动装订是我不太懂的。我的看法是,如果你愿意,编译器可以知道它在编译哪个类,所以它知道类型。那么为什么它不能确定它是否在编译类Foo,self指向Foo?也就是说,如果self始终指向类Foo的当前实例?

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