IsA or HasA?

When designing a class hierarchy, you may face a decision between inheritance (aka IsA ) vs. containment (aka HasA) relation. For instance, if you are designing a


class, and you already have the following classes implemented for you in some library:

 Dial, ElectricAppliance. 

It is quite obvious that your Radio should be derived from


However, it is not so obvious that


should also be derived from


. How to decide? You can check whether there is always a 1:1 relation between the two, e.g., do all radios have one and only one dial? You may realize that the answer is

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: