If you had a Dog class, you might extend it, is-a style, to Dalmatian by subclassing and adding fields specific to Dalmatians, such as spotCount. In the real world every Dalmatian is a Dog. That is why this style of extension works out.
On the other hand, If you wanted to add fields about microdetails of a Dog’s tail, your could conceivable add some tail-describing fields to the Dog class or create a new Tail class and add an optional reference to a separate Tail object in each Dog record. You might make Tail an inner class of Dog, or a totally separate class. This has-a approach works because in the real world a Dog has a Tail. You can’t say a Dog is a Tail. If you focus on the real world meaning of the terms is and has you will automatically select the correct way to extend a class.
This page is posted
Optional Replicator mirror
Your face IP:[22.214.171.124]
You are visitor number|