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