我剛剛面對這種行爲,我真的不明白。Ruby mixin覆蓋方法說明
module M
def foo
"module_foo"
end
end
class C
def foo
"class_foo"
end
include M
end
puts C.new.foo
爲什麼C.new.foo
實際上返回class_foo
?我很確定這個方法應該被模塊中的方法覆蓋。另一件事,與super
更換"class_foo"
使得C.new.foo
回報`「module_foo」
這實際上看起來像模塊定義的類的實例方法之前以某種方式包括在內。你能澄清一下嗎?
嘿,這麼明顯。謝謝!! – 2012-03-22 18:13:06