第一种情况
两个版本的方法,其中一个包含在类中,另一种包含在类的模块中。
module A
def say
puts "hello"
end
end
class B
include A
def say
puts "hello evryone"
end
end
b=B.new
b.say
输出结果为 hello evryone
第二种情况
混合拥有同名方法的模块
module A
def say
puts “my name is A”
end
end
module B
def say
puts “my name is B”
end
end
class C
include A
include B
end
c=C.new
c.say
输出为 my name is B
第三种情况
包含一个模块多次
以上面为例
class D
includ A
includ B
include A
end
输出结果为 my name is B
本文探讨了在Ruby中,当一个类包含了多个模块且这些模块中有同名方法时,方法解析的优先级和具体实现。通过三个实例,详细解释了模块包含一次和多次时,方法解析的具体过程。
279

被折叠的 条评论
为什么被折叠?



