我有这个问题。我想创建一个继承自Array的类。然后我可以这样做
class MyClass < Array
但是,我只想继承一些方法,而不是全部方法,所以我的班级不会因为从父母那里调用非预期的方法而搞砸了
答案 0 :(得分:1)
在ruby中执行此操作的经典模式是使用混合。既然你想要阵列功能,我不完全确定,但我觉得你可能想要你班上可枚举的力量。如果是这种情况,那么您所要做的就是定义一个类,包括enumerable,然后定义方法each
,从中定义可枚举中的所有其他方法。
class MyClass
include Enumerable
def initialize *foos
@foos = foos
end
def each(&block)
@foos.each(&block)
end