所以这就是我想做的事:类继承轨
class A
ATTRS = []
def list_attrs
puts ATTRS.inspect
end
end
class B < A
ATTRS = [1,2]
end
a = A.new
b = B.new
a.list_attrs
b.list_attrs
我想创建一个基类与类的ATTRS属性起着方法。在每个继承类会有不同的ATTRS阵列
因此,当我打电话a.list_attrs
应该打印一个空数组,如果我叫b.attrs
应该把[1,2]
。
这怎么能在ruby/ruby上完成?
我要说的是,在子类访问实例变量是不好的做法(封装差)。尽管你可以使用属性阅读器/编写器,但是你仍然必须在你的'initialize'方法中调用'super'(除了这个例子中的小例子),并且按照正确的顺序! – molf 2011-05-16 13:44:56
@modf:倾向于同意你;我认为继承本身被过度使用,在大多数情况下应该避免 – 2011-05-16 14:08:41