CSC/ECE 517 Fall 2007/wiki2 10 ab
Problem Statement
Inheritance vs. delegation. Follow the debate on inheritance vs. delegation. Construct (or, better, cite) examples that show cases where inheritance is better, and cases where delegation is better. Attempt to characterize the situations in which you should employ one or the other.
What is Inheritance
Inheritance in the concept of Object Oriented Programming is the process by which one object can inherit or acquire the properties of other objects. With the use of inheritance each object which are instances of derived classes can only define the properties which are unique to itself and derive qualities or common attributes from other objects which are instances of base classes .The obvious advantages of inheritance is reusability which greatly reduces code repetition. Inheritance is directly supported by object oriented languages and it gives way to the concept of polymorphism. The inheritance relationship between the base and derived classes is illustrated at compile time which means that a class cannot change its parent class dynamically at run-time.
What is Delegation
Delegation, in the concept of object oriented programming refers to the ability of an object in assigning or delegating the implementation of certain functions to other objects. This concept is also referred to as dynamic inheritance. As compared to inheritance delegation is not directly supported by object oriented languages but on the other hand unlike inheritance , the class to which the function is delegated can be changed at runtime.