ruby中include模块的特性

一.疑惑点

    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

结果分析: 重复引用将不会编译的时候不会在执行.


自学阶段,如有不对,敬请指出.

转载于:https://my.oschina.net/u/1375497/blog/171435

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值