title: Best way of preventing other programmers from calling -init
body: <p>When designing a class hierarchy, sometimes the subclass has added a new <code>initWithSomeNewParam</code> method, and it would be desirable to disable calls to the old <code>init</code> method inherited from the superclass.</p>
  
  <p>First of all, I've read the question <a href="https://stackoverflow.com/q/195078/813951">here</a>, where the proposed alternatives are either override <code>init</code> to throw an exception at runtime, or override and set default values for properties. In my case, I don't wan't to provide default values, and I want to clearly indicate that the old method should not be called, and instead the new method with parameters should be used.</p>
  
  <p>So the runtime exception are fine, but unless the code is debugged, there's no way for other programmers in the team to notice that the old method is no longer intended to be used.</p>
  
  <p>If I'm correct, there's no way to mark a method as "private". So, apart from adding comments, is there a way to do this? </p>
  
  <p>Thanks in advance.</p>