0

我有一个超类和一组子类。在每个子类中,我定义了一个具有相同名称的类实例变量x。要为这些类之一创建访问器,我只需在子类定义中使用:

class << self
  attr_accessor :x
end

我想避免在我的所有子类定义中使用这些相同的代码行。但是如果我把它放在超类定义中,那么它不会为超类的实例变量定义一个访问器吗?那不是我想要的。有没有办法在一个地方为所有子类的类实例变量定义访问器?

4

1 回答 1

2

请记住,attr_accessor 指令实际上定义了两个方法:x() 和 x=()。现在,如果您在超类中声明了两个公共方法,它们在子类中是否可用?答案是肯定的,除非你重新定义它们。

所以把这个指令放在超类中就好了,而且会很有魅力。

于 2012-07-22T20:24:09.817 回答