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. 