Continue until the operation is found, or raise an exception. Interpret the selected operation using the parameters and the instance's environment. Return any values from the execution of the operation. Abstract classes can be used to define a common protocol designed to be inherited by several classes. Abstract classes usually have no instances.
Inheritance is used to re-use code.
Consider a stack and a double ended list. If inheritance describes relations, neither is appropriate. The desire for economy in code production has the better of us. This approach is known as composition . Both inheritance an composition are useful and powerful techniques.