Yukihiro Matsumoto
7/4/2008 2:35:00 PM
Hi,
In message "Re: initialize and super with parameters"
on Fri, 4 Jul 2008 23:26:46 +0900, Andy Joel <ak_joel@hotmail.com> writes:
|Some example code
|
|class MySuperClass
| def initialize *args
| puts "In SuperClass initialize"
| end
|end
|
|class MySubClass1 < MySuperClass
| def initialize name
| puts "In SubClass initialize: " + name
| super
| end
|end
|
|The super in the subclass will take with it any parameters that were
|sent to the initialize method, so this will throw an error as the
|initialize in MySuperClass does not accept the same number of
|parameters.
|
|This is surprisingly restrictive (given the nature of Ruby generally).
|If you are extending a class with a parameterless initializer, you
|cannot access the superclass initializer if you want to include a
|parameter.
Why not? You can explicitly provide arguments to super, e.g.
super(arg1, arg2)
to call a method of super class. You can call it without any argument
by
super()
note that it's different from "super".
matz.