title: In Objective-C why is id used as return type for init methods?
body: <p>I did some quick searching and couldn't find an answer for this.</p>
  
  <p>I'm interested to know why in Objective-C, <code>id</code> is used as the return type for init methods.</p>
  
  <p>My guess is that it's because if the class is overridden, you don't want to return an object of the superclass's type, but I'm interested to know if it's done for some other reason.</p>