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需要一个论点,我给出的很好。类A不需要任何参数,所以我根本没有传递任何东西super

4

1 回答 1

19

您需要使用 super() 才能在不带参数的情况下调用它。Super 本身会自动使用提供给自身的参数(即“名称”)调用父级

于 2012-08-02T21:02:34.627 回答