Конструктор, переопределяющий

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

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)
26
задан sawa 21 August 2014 в 08:12
поделиться

1 ответ

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

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

super()
51
ответ дан 28 November 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: