Constructor overriding

亡梦爱人 提交于 2019-11-27 03:45:06

问题


I have a class:

class One
  def initialize; end
end

I need to create a new class with my own constructor like this:

class Two < One
  def initialize(some)
    puts some
    super
  end
end

Two.new("thing")

but when I launch the code, I got an error:

thing
test.rb:10:in `initialize': wrong number of arguments (1 for 0) (ArgumentError)

回答1:


super in this case (without parentheses) is a special form. It calls the superclass method with the original params.

Instead try calling

super()


来源:https://stackoverflow.com/questions/2570428/constructor-overriding

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!