[Newbies] Question about inheritance

Lukas Renggli renggli at gmail.com
Fri Oct 13 14:22:41 UTC 2006


> Any points to clarify my confusion would be greatly appreciated.

This is an interesting question that is often asked at exams ;-)

The first thing to notice is that 'super' references the receiver but
changes the way the method it looked up, therefor

   self = super

is always true. Furthermore

   self class = super class

is true as well, since self and super both represent the receiver,
again super just changes the place where the lookup of #class is
started. "self class" and "super class" both answer the class of the
receiver.

> It seems to me that "super new" and "superclass new" should do the same thing.

Now to come to your example: "super new" starts the lookup of #new in
the superclass, however the receiver of the message is unchanged and
you get an instance of the receiving class. "superclass new" creates
an instance of the superclass, as you would expect the receiver of the
message #new is the superclass.

Cheers,
Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch


More information about the Beginners mailing list