2012-12-30 71 views

回答

3

當類A繼承類B或包含/擴展模塊C,然後A得到任何BC有,除了其自己的常量,變量和方法。 BC不受此影響。

在你的情況下,BazFoo的子類。所以Baz有什麼Foo有,除了Baz::KEYLETTERSFoo除此之外沒有任何東西。特別是沒有Foo::KEYLETTERS

+0

但是,您如何解釋問題中共享鏈接的行爲? – LPD

+0

我不認爲這是真的。看看這篇文章在這裏:http://stackoverflow.com/questions/9014764/have-a-parent-classs-method-access-the-subclasss-constants,其中動物可以「把self.class :: NOISE」沒有曾經宣佈NOISe自己(見第二代碼塊Phrogz的答案)。而且,模塊可以訪問它們包含的類的實例變量;所以我不認爲你的陳述對於模塊是正確的。 – McKrassy

+2

LPD,McKrassy您在混淆接收器是什麼。仔細地看。在這些情況下,構造函數應用於'Dog',而不是'Animal'。 「狗」有所有額外的東西; '動物'不。 – sawa