Ruby继承了特定的方法

时间:2014-06-04 04:51:17

标签: ruby class inheritance

我有这个问题。我想创建一个继承自Array的类。然后我可以这样做

class MyClass < Array

但是,我只想继承一些方法,而不是全部方法,所以我的班级不会因为从父母那里调用非预期的方法而搞砸了

1 个答案:

答案 0 :(得分:1)

在ruby中执行此操作的经典模式是使用混合。既然你想要阵列功能,我不完全确定,但我觉得你可能想要你班上可枚举的力量。如果是这种情况,那么您所要做的就是定义一个类,包括enumerable,然后定义方法each,从中定义可枚举中的所有其他方法。

class MyClass
  include Enumerable

  def initialize *foos
    @foos = foos
  end

  def each(&block)
    @foos.each(&block)
  end