有没有可能让c1.ay在不更改M1、M2、C1的情况下显示"lalala“?也就是说,使用额外的模块覆盖M2的方法?谢谢,
module M1
def word
"lalala"
end
end
module M2
def word
super + 'wawawa'
end
end
class C1
include M1
include M2
def say
puts word
end
end
c1 = C1.new
c1.say # lalalawawawa发布于 2012-05-17 17:32:11
您总是可以在不更改其原始代码的情况下对任何类进行修补。
module M1
def word
"lalala"
end
end
module M2
def word
super + 'wawawa'
end
end
class C1
include M1
include M2
def say
puts word
end
end
# patch M2
M2.class_eval do
def word
super
end
end
# or patch C1
# C1.class_eval do
# def word
# 'lalala'
# end
# end
c1 = C1.new
c1.say
# >> lalalahttps://stackoverflow.com/questions/10632976
复制相似问题