Tôi vừa mới đối mặt với hành vi này mà tôi thực sự không hiểu.Làm rõ phương pháp ghi đè lên trộn bằng Ruby
module M
def foo
"module_foo"
end
end
class C
def foo
"class_foo"
end
include M
end
puts C.new.foo
Tại sao C.new.foo
thực sự trả lại class_foo
? Tôi đã khá nhiều chắc chắn rằng phương pháp nên được ghi đè bởi một trong mô-đun. Một điều khác, thay thế "class_foo"
bằng super
làm cho C.new.foo
trả lại `" mô-đun_foo "
Điều đó thực sự giống như mô-đun được bao gồm bằng cách nào đó trước khi phương pháp thể hiện lớp được xác định. Ông có thể làm rõ?
heh, hiển nhiên. cảm ơn!! –