title: What's the harm of property override in Objective-C?
body: <p>There are several situations where you might override a super class's property.</p>
  
  <ol>
  <li><p>You declare a property with the same name and same attribute of its
  superclass'.(since if you change the
  attribute you can get an compiler
  warning).And you can synthesieze
  with an ivar that you create. What's
  the use of this? Or what's the harm
  can it do?</p></li>
  <li><p>If a superclass declares a property in a class extension (a category
  with no name), then it might not be
  in the header file. If you don't
  know that property from the header
  file, you can declare the same name
  property with what ever attribute or
  class you want. But the
  setter/getter method will override
  the ones for that "secret property".
  I think this can only do harm. But
  since you don't know from the header
  file, how can you avoid this?</p></li>
  <li><p>You can declare a property in the header file as "readonly" and in
  class extension redeclare it as
  "readwrite". I think this is the
  situation that it can do good.</p></li>
  </ol>
  
  <p>Is my understanding about these situations right? And I don't know what good the first and second situations can do. But if I want to avoid the first situation, I can check if the subclass already has the property before I declare it. But if the property is not in the public header file, as in the second situation, I just don't know what to do.</p>