一.疑惑点
ruby中引入模块module的概念,在定义类的时候可以通过对模块进行组装来生成需求的类,如此可以在继承的基础上增强代码的复用行.
如果类所include的模块中包含相同的方法时会出现什么情况呢?
二.测试
1.在一个类中引用多个包含相同方法名方法的模块.
module Robot1
def say
puts "1"
end
end
module Robot3
def say
puts "3"
end
end
module Robot2
def say
puts "2"
end
end
class Robot
include Robot1
include Robot2
include Robot3
end
robot=Robot.new
robot.say
输出结果: 3
结果分析: 最后面include的模块会覆盖之前模块的相同方法.
2.调换模块的引用顺序
class Robot
include Robot1
include Robot3
include Robot2
end
输出结果: 2
结果分析:支持一开始的猜想.
3.重复引用相同模块会怎么样?
class Robot
include Robot1
include Robot2
include Robot3
include Robot2
end
输出结果: 3
结果分析: 重复引用将不会编译的时候不会在执行.
自学阶段,如有不对,敬请指出.