<Table> <Tr> <Td> </Td> <Td> This article may require cleanup to meet Wikipedia's quality standards . The specific problem is: Cluttered Please help improve this article if you can . (April 2015) (Learn how and when to remove this template message) </Td> </Tr> </Table> <Tr> <Td> </Td> <Td> This article may require cleanup to meet Wikipedia's quality standards . The specific problem is: Cluttered Please help improve this article if you can . (April 2015) (Learn how and when to remove this template message) </Td> </Tr> <P> In object - oriented programming, inheritance is when an object or class is based on another object (prototypal inheritance) or class (class - based inheritance), using the same implementation . Inheritance in most class - based object oriented languages is a mechanism in which one object acquires all the properties and behaviors of parent object . The idea behind inheritance is that you can create new classes that are built upon existing classes . or specifying a new implementation to maintain the same behavior (realizing an interface). Such an inherited class is called a subclass of its parent class or super class . It is a mechanism for code reuse and to allow independent extensions of the original software via public classes and interfaces . The relationships of objects or classes through inheritance give rise to a directed graph . Inheritance was invented in 1967 for Simula . The term "inheritance" is loosely used for both class - based and prototype - based programming, but in narrow use is reserved for class - based programming (one class inherits from another), with the corresponding technique in prototype - based programming being instead called delegation (one object delegates to another). </P> <P> Inheritance should not be confused with subtyping . In some languages inheritance and subtyping agree, whereas in others they differ; in general, subtyping establishes an is - a relationship, whereas inheritance only reuses implementation and establishes a syntactic relationship, not necessarily a semantic relationship (inheritance does not ensure behavioral subtyping). To distinguish these concepts, subtyping is also known as interface inheritance, whereas inheritance as defined here is known as implementation inheritance or code inheritance . Still, inheritance is a commonly used mechanism for establishing subtype relationships . </P>

What is the rationale behind using inheritance in programming