9
class A
  def initialize
    print "Hello! "
  end
end

class B <  A
  def initialize(name)
    super
    print "My name is #{name}!"
  end
end

test = B.new("Fred")

そして、私は得る

wrong number of arguments (1 for 0)

しかし、なぜ?クラスBには 1 つの引数が必要です。クラスAは引数を必要としないので、何も渡していませんsuper

4

1 に答える 1

19

引数なしで呼び出すには、super() を使用する必要があります。スーパー自体は、それ自体に提供された引数 (つまり、「名前」) を使用して親を自動的に呼び出します。

于 2012-08-02T21:02:34.627 に答える