devxlogo

IsA or HasA?

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

 Radio 

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

 ElectricAppliance. 

However, it is not so obvious that

 Radio

should also be derived from

 Dial

. 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

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist