问题
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