27

私はクラスを持っています:

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)
4

1 に答える 1

52

superこの場合 (括弧なし) は特別な形式です。元のパラメーターを使用してスーパークラス メソッドを呼び出します。

代わりに電話してみてください

super()
于 2010-04-03T06:22:49.883 に答える