Ruby:子类的参数数量错误会改变参数的数量

时间:2014-11-24 22:19:04

标签: ruby super

我是Ruby的新手,我一直在寻找我的问题的答案,但还没有找到答案。 这是我的代码:

class Animal
  def initialize(aName, anAge)
    @name = aName
    @age = anAge
  end
end

class Cat < Animal
  def initialize(aName, anAge, aBreed)
    @breed = aBreed
    super(aName, anAge, aBreed)
  end
end

当我尝试创建一个定义了三个参数的新cat对象时,它会说:ArgumentError:参数数量错误(3个为2)。 但是当我用两个参数做同样的事情时我得到了(2个为3)。

我似乎无法弄明白...... 谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

您的超级Animal构造函数只需要两个参数aNameanAge。所以你只应该将Cat的前两个参数传递给Animal

class Cat < Animal
  def initialize(aName, anAge, aBreed)
    @breed = aBreed
    super(aName, anAge)
  end
end