Inheritance is the most basic feature of any Object Oriented programming language. It refers to the derivation of sub classes from a base/super class.

The inherited sub classes inherit the common / basic features of the base / super class at the same time implements their own specific features. Inheritance helps us to reduce the complexity of software systems by decomposing into a hierarchy of subsystems. Inheritance also helps to apply the appropriate level of abstraction to each class in the hierarchy according to the perspectives of the user.