title: why does initializing subclasses require calling the super class's same init function?
body: <p>I have heard that when you have a subclass, you are supposed to initialize the superclass with the same init function from within the subclass's init.  What I mean is that the subclass's init should call [super init] and the subclass's initWithFrame should call [super initWithFrame].  Why is this?  Why does calling the super's init from a subclass's initWithFrame result in an infinite loop?</p>
  
  <p>If this is required, then does this mean I can't create a new init function within a subclass such as initWithPoint and have that call super's init or initWithFrame simply because the super class doesn't have initWithPoint?  I guess the heart of the question here is simply why it's improper to call a different super class, something that's confusing me possibly because of my c++ background?</p>