构造函数重写

时间:2010-04-03 06:11:42

标签: ruby super

我有一个班级:

class One
  def initialize; end
end

我需要使用我自己的构造函数创建一个新类:

class Two < One
  def initialize(some)
    puts some
    super
  end
end

Two.new("thing")

但是当我启动代码时,我收到了一个错误:

thing
test.rb:10:in `initialize': wrong number of arguments (1 for 0) (ArgumentError)

1 个答案:

答案 0 :(得分:50)

在这种情况下,

super(没有括号)是一种特殊形式。它使用原始参数调用超类方法。

而是尝试调用

super()