Переопределение конструктора - PullRequest
25 голосов
/ 03 апреля 2010

У меня есть класс:

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 Ответ

51 голосов
/ 03 апреля 2010

super в этом случае (без скобок) - это специальная форма. Он вызывает метод суперкласса с исходными параметрами.

Вместо этого попробуйте позвонить

super()
...