Avoid Improper Inheritance

Using public inheritance with two classes that do not fully comply with the is-a relation (although they are related to one another) is a common design mistake. For example, deriving class Stack from class List may indicate a design flaw. A stack is not a list. Both classes support some common operations, yet using public inheritance is too strong a statement about the relationship between the two. Such improper inheritance relations can result in serious maintenance problems. In this case, private inheritance–or better yet, a simple containment relation–would be more suitable.

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

Overview

Recent Articles: