Herencia (informática)

La primera, es que la herencia no es un mecanismo esencial en el paradigma de programación orientada a objetos; en la mayoría de los lenguajes orientados a objetos basados en prototipos las clases no existen, en consecuencia tampoco existe la herencia y el polimorfismo se logra por otros medios.La segunda, es que el medio preferido para lograr los objetivos de extensibilidad y reutilización es la agregación o composición.La tercera, es que en lenguajes con un sistema de tipos débiles, el polimorfismo se puede lograr sin utilizar la herencia.En el ejemplo anterior, una clase "perro" heredaría los atributos y métodos de la clase "mamífero", así como también "gato", "delfín" o cualquier otra subclase; pero, en ejecución, no habrá ningún objeto "mamífero" que no pertenezca a alguna de las subclases.La ausencia de instancias específicas es su única particularidad, para todo lo demás es como cualquier otra clase.Para redefinir un método en la subclase, basta con declararlo nuevamente con la misma signatura (nombre y parámetros).
Ejemplo de herencia en lenguaje UML