Inheritance is an interesting object-oriented programming concept. It allows one class (the sub-class) to be based upon another (the super-class) and inherit all of its functionality automatically. Additional code may then be added to create a more specialized version of the class. In the example of vehicles, sub-classes for cars or motorcycles could be created. Each would still have all of the behavior of a vehicle but can add specialized methods and properties, such as ‘Lean()’ and ‘LeanAngle’ for motorcycles.
Some programming languages allow for multiple inheritance where a sub-class is derived from two or more super-classes. C# does not permit this but does allow a class to implement multiple interfaces. An interface defines a contract for the methods and properties of classes that implement it. However, it does not include any actual functionality.