1

Pharo (Smalltalk 実装) のコースを受講しています。私が言語について本当に理解していない小さな詳細があります。

教授は後期自己結合静的超結合について語っています。静的バインディングについて私が理解していることから、コンパイラーはコンパイル時に私のスーパークラスが何であるかを知っています。これは論理的に思えます。多重継承は (私が知る限り) 存在しないため、スーパーは 1 つしか存在できません。したがって、継承ツリーを見て親を取得するだけです。

遅いセルフバインディングは、私がよく理解していないものです。私の見方では、コンパイラはコンパイルしているクラスを知ることができるので、型を知っています。では、クラス Foo をコンパイルしているかどうか、その自己が Foo を指しているのかどうかを判断できないのはなぜですか? つまり、self が常にクラス Foo? の現在のインスタンスを指している場合です。

4

2 に答える 2

0

ifBarは のサブクラスでありFoo、 メソッドbazは で定義されているため、 のインスタンスからFoo呼び出すことができます。その場合、 のクラスはではなくになり ます。bazBarselfBarFoo

于 2013-09-30T16:05:03.827 に答える