Rick McGuire - 2008-12-16

This is the correct behavior. The target superclass method from the init() method of the top-level class is the direct inheritance chain. If you wish all branches of the inheritance chain to get initialized, then you need to explicitly invoke that branch of the chain.

Also, your test that puts out the error message is clearly wrong, since it makes that decision before even forwarding the message to the super class. There is only one init message sent to the constructed class, and that starts with the method directly defined by the class in question.