title: How to have two NSManagedObject classes with the same superclass
body: <p>I have two classes, <code>Mammals</code> and <code>Fish</code>, which both inherit from a general superclass, <code>Animals</code>. I'd like to store all my <code>Mammals</code> and <code>Fish</code> using Core Data, so I've made them both be subclasses of NSManagedObject. So, when I want to get all my <code>Mammals</code> and <code>Fish</code>, I just execute a couple fetch requests.</p>
  
  <p>My question is what to do about the <code>Animals</code> superclass. </p>
  
  <ul>
  <li>It's properties and methods are obviously used by the two subclasses, so should it be a NSManagedObject as well? </li>
  <li>If so, do <code>Mammals</code> and <code>Fish</code> even need an explicit NSManagedObject subclass because they already subclass <code>Animals</code>?</li>
  <li>Is this approach flawed?</li>
  </ul>
  
  <p>Sorry if this is a super-basic question, especially if the answer is just "Yes; No." One of the answers <a href="https://stackoverflow.com/questions/3562006/how-can-i-make-all-core-data-objects-inherit-from-my-class-rather-than-nsmanaged?rq=1">here</a> warned against using inheritance in the data model, hence my apprehension.</p>