Ruby之旅(六) 模块以及类的多继承

本文介绍了Ruby中的模块概念及其用途,包括作为命名空间避免命名冲突,以及如何通过mix-in为不同类提供统一的功能实现,类似于C++中的多继承。

ruby除了支持class外还支持module,module的作用有两个:
1 当作一组方法和常数的命名空间 防止命名冲突
2 可以被类mixin(混入),mixin module的类的实例则拥有了模块的方法。


不同的类混入了同样的模块,则可以拥有同样的功能,而无须去继承某个父类。

可以通过include一个module来实现c++中的多继承。

module CircularModule
  PI 
=   3.1415926
  
def  calculate(diamiter)
    
return  diamiter  *  PI
  end
end
  
class  Circular
  include CircularModule
end
  
=  Circular.new
puts c.calculate(
5 #  output 15.707963
可以看出来,使用include包含了一个模块后,该类就会包含模块中的方法和常数,方法用 对象名.方法名 ,常数用 类名::常数 。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值