2013-09-30 80 views
1

我在Pharo(Smalltalk實現)中學習課程。有一個細節我不太瞭解這門語言。遲自我約束和靜態綁定

教授講的後期自行綁定靜態超級綁定。從我所瞭解的靜態綁定中,編譯器知道我的超類是什麼。這似乎是合乎邏輯的,因爲沒有多重繼承(據我所知),所以只能有一個超級繼承。所以它只需要查看繼承樹並獲取父項。

遲自我約束是我不太瞭解的東西。我如何看待它,是因爲編譯器可以知道它編譯的是哪個類,所以它知道類型。那麼,爲什麼它不能確定它是否正在編譯Foo類,那自我指向了Foo?也就是說,如果self總是指向Foo類的當前實例?

回答

0

因爲如果BarFoo一個子類,方法bazFoo定義,你可以從Bar一個實例調用baz,在這種情況下,類的selfBar,不Foo