Inheritance (object-oriented programming)
In Object-oriented programming languages, inheritance is a way to add functionality. Object-oriented programming has the notion of classes (and perhaps interfaces). A derived class inherits most fields and methods from its parent class. It can modify the behaviour of the parent, by adding new fields and methods, or by modifying existing ones. Depending on the programming language used, there may be certain restrictions when extending a class.
Inheritance can be used to solve different types of problems:
- Specialisation: The child class extends the functionality of the parent. That way a Bank account may have fields for balance, account number and owner; a subclass interest-earning account may add fields like interest rate and interest received.
- Overriding: The child class can redefine the behaviour of the parent class.
- Code reuse: Code that is common to many classes can be placed in a parent class, and reused.
An example can be a Car class. A Ferrari class could inherit from Car. A Toyota class which could also inherit from Car. All the fields and methods (drive method, brake method, color field...) would also be inside of Ferrari and Toyota. There would be no need to copy the code twice. Inside of Car there could be a brand field. This brand field would be equal to nothing, but inside of Ferrari the field might be equal to "ferrari" and in Toyota to "toyota".