致电家长班'初始化功能?

时间:2014-11-17 12:59:54

标签: ruby

我对Ruby没什么经验,我来自C ++,常用的初始化列表。关于Ruby的一件事我想知道如下:

给定以下类Vehicle及其子类Car:

class Vehicle
 attr_reader :wheels
 def initialize(wheels)
  @wheels = wheels 
 end
end 

class Car < Vehicle
 def initialize(car_stuff)
  @wheels = 4 # this is the part I don't like! ;)
  @car_stuff = car_stuff
 end 
end

有没有办法调用超类构造函数方法而不是通过类Vehicle可能有的不同变量?

提前谢谢你。

1 个答案:

答案 0 :(得分:4)

这是super的用途:

class Car < Vehicle
  def initialize(car_stuff)
    super(4)
    @car_stuff = car_stuff
  end
end