We are independent & ad-supported. We may earn a commission for purchases made through our links.
Advertiser Disclosure
Our website is an independent, advertising-supported platform. We provide our content free of charge to our readers, and to keep it that way, we rely on revenue generated through advertisements and affiliate partnerships. This means that when you click on certain links on our site and make a purchase, we may earn a commission. Learn more.
How We Make Money
We sustain our operations through affiliate commissions and advertising. If you click on an affiliate link and make a purchase, we may receive a commission from the merchant at no additional cost to you. We also display advertisements on our website, which help generate revenue to support our work and keep our content free for readers. Our editorial team operates independently of our advertising and affiliate partnerships to ensure that our content remains unbiased and focused on providing you with the best information and recommendations based on thorough research and honest evaluations. To remain transparent, we’ve provided a list of our current affiliate partners here.
Software

Our Promise to you

Founded in 2002, our company has been a trusted resource for readers seeking informative and engaging content. Our dedication to quality remains unwavering—and will never change. We follow a strict editorial policy, ensuring that our content is authored by highly qualified professionals and edited by subject matter experts. This guarantees that everything we publish is objective, accurate, and trustworthy.

Over the years, we've refined our approach to cover a wide range of topics, providing readers with reliable and practical advice to enhance their knowledge and skills. That's why millions of readers turn to us each year. Join us in celebrating the joy of learning, guided by standards you can trust.

What Is Class Hierarchy?

By Jessica Susan Reuter
Updated: May 16, 2024

A class hierarchy, also called a class taxonomy, is a group of related classes that are connected through inheritance to do similar things. The top of the hierarchy can be a single base class from which all other classes below it are derived, or the hierarchy can have multiple base classes whose functionalities merge together later in one or more derived classes. The relationships between the classes can be illustrated as trees, and each smaller tree within the large taxonomy can also be considered a hierarchy.

Not all class hierarchies can have multiple roots, and the structure of any class hierarchy depends largely on the language it's written in. C++ allows multiple inheritance, so complex hierarchies can be built with multiple roots and multiple trees that merge into one another. Java®, on the other hand, is limited to single inheritance, so its class relationships are usually simpler, built as relatively self-contained trees with a single root. Interface inheritance can add some complexity to a class hierarchy in Java®, but interfaces almost never are invoked in such a complex framework that it would be like merging trees together.

The components of a class hierarchy can vary in type and function, as long as the rules of the language are always followed with respect to inheritance. Classes in a hierarchy can be public, protected, abstract, concrete, or virtual. Interfaces, global functions, and friends may also be used. Depending on the computer language, some of these types may lend themselves better to inheritance than others. In general, hierarchies are very flexible, and can be used in many ways for many purposes.

There are no hard rules concerning where particular types of classes must be placed in a hierarchy. Any class can conceivably be any of the types mentioned above. In general, the last classes in the hierarchy that have no derived classes beneath them should be public and concrete. Since purely abstract class hierarchies can also exist, however, this is just a rule of thumb.

Although a class hierarchy can be a useful tool to organize code and encapsulate functionality, there may be times in which delving too deep into a hierarchy may actually confuse the code, rather than clarify it and make it easier to maintain. Building a robust relationship between many classes takes a certain amount of foresight; while it might initially be easier to break code into many small pieces, those small pieces may become more difficult to handle later. When built properly, a class hierarchy aids both developers and users in determining how classes work. If it is built without maintenance and clarity in mind, the many levels of inheritance can be confusing to look back on and understand.

EasyTechJunkie is dedicated to providing accurate and trustworthy information. We carefully select reputable sources and employ a rigorous fact-checking process to maintain the highest standards. To learn more about our commitment to accuracy, read our editorial process.
Discussion Comments
Share
EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.

EasyTechJunkie, in your inbox

Our latest articles, guides, and more, delivered daily.