初始化调用其母亲的实例方法的对象的正确方法是什么?

时间:2011-09-30 03:04:28

标签: ruby oop inheritance attributes instance-methods

问题是标题。我说下面有一个简单的例子:

class Vehicle
  attr_accessor :wheels
end

class Car < Vehicle
  def initialize
    self.wheels = 4
  end
end

class Truck < Vehicle
  def initialize
    @wheels = 16
  end
end

我很好奇哪种方式被认为是正确的或更好的方式来调用 母亲的wheels作家方法Vehicle

1 个答案:

答案 0 :(得分:3)

self.wheels = 4更灵活,因为它会调用一个setter方法:self.wheels=(4)

因此,如果您希望在将值放入@wheels之前对该值执行某些操作,则可以定义该函数:

def wheels=(val)
  # do something
  @wheels = new_val
end