mac自带ruby环境---mixin实现多重继承

文章介绍了Ruby如何通过模块(Module)实现类似多重继承的功能。通过`include`关键字,类可以嵌入模块,从而获得模块中定义的方法。这种机制称为mixin,使得Ruby不需要直接支持多重继承,也能实现代码复用和类的扩展。
摘要由CSDN通过智能技术生成
module A
   def a1
    puts "A.a1"
   end
   def a2
    puts "A.a2"
   end
end

module B
   def b1
    puts "B.b1"
   end
   def b2
    puts "B.b2"
   end
end

# 类中嵌入模块。为了在类中嵌入模块,您可以在类中使用 include 语句:
# include modulename
# 如果模块是定义在一个单独的文件中,那么在嵌入模块之前就需要使用 require 语句引用该文件。

class Sample
include A
include B
   def s1
   end
end

samp=Sample.new
samp.a1
samp.a2
samp.b1
samp.b2
samp.s1
# 模块 A 由方法 a1 和 a2 组成。
# 模块 B 由方法 b1 和 b2 组成。
# 类 Sample 包含了模块 A 和 B。
# 类 Sample 可以访问所有四个方法,即 a1、a2、b1 和 b2。
# 因此,您可以看到类 Sample 继承了两个模块,您可以说类 Sample 使用了多重继承或 mixin 。

#
# 当一个类可以从多个父类继承类的特性时,该类显示为多重继承。
# Ruby 不直接支持多重继承,但是 Ruby 的模块(Module)有另一个神奇的功能。它几乎消除了多重继承的需要,提供了一种名为 mixin 的装置。
# Ruby 没有真正实现多重继承机制,而是采用成为mixin技术作为替代品。将模块include到类定义中,模块中的方法就mix进了类中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值