CSC/ECE 517 Fall 2011/ch17 5b uo: Difference between revisions
No edit summary |
|||
Line 42: | Line 42: | ||
== Drawbacks of inheritance == | == Drawbacks of inheritance == | ||
Inheritance is not without its own set of drawbacks. If inheritance is applied without due consideration problems can arise. In some situations it can: | Inheritance is not without its own set of drawbacks. If inheritance is applied without due consideration problems can arise. In some situations it can: | ||
* Reduce the comprehensibility of code.<br> | |||
* Make maintenance harder.<br> | |||
* Make further development harder.<br> | |||
* Reduce reliability of code.<br> | |||
* Reduce overall reuse.<br> | |||
== Conclusion == | == Conclusion == |
Revision as of 15:25, 30 October 2011
When to use Inheritance
Introduction
Inheritance is a useful programming concept, but it is easy to abuse this concept. Often interfaces or delegation are better options. In this wiki chapter, we will discuss the situations when to use and when not to use inheritance.
Inheritance is a good choice when:
Your inheritance hierarchy represents an "is-a" relationship and not a "has-a" relationship.
You can reuse code from the base classes.
You want to implement polymorphism.
The class hierarchy is reasonably shallow, and other developers are not likely to add many more levels.
You want to make global changes to derived classes by changing a base class.
These points are discussed in detail below
Representing "Is-a" Relationship
Code Reuse
Third level title if any
code here if any
Third Level Heading 2
Add Code here
Inheritance-based Polymorphism
Shallow Class Hierarchies
Global Changes to Derived Classes Through the Base Class
Drawbacks of inheritance
Inheritance is not without its own set of drawbacks. If inheritance is applied without due consideration problems can arise. In some situations it can:
- Reduce the comprehensibility of code.
- Make maintenance harder.
- Make further development harder.
- Reduce reliability of code.
- Reduce overall reuse.