Frage Falsche Anzahl der Argumente beim Aufruf von super


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

Und ich verstehe

wrong number of arguments (1 for 0)

Aber warum? Klasse B erfordert ein Argument, und ich gebe es gut. Klasse A braucht kein Argument, also gebe ich nichts weiter super überhaupt.


9
2017-08-02 20:56


Ursprung


Antworten:


Sie müssen super () verwenden, um es ohne Argumente aufzurufen. Super an sich ruft automatisch den Elternteil mit den ihm zur Verfügung gestellten Argumenten auf (z. B. "Name")


18
2017-08-02 21:02