HERENCIA: MODELADO Y PROGRAMACIÓN Por JORGE HERRERA CASTILLO
INTRODUCCIÓN La herencia es una de las propiedades de la POO que aplica los principios de la generalización y la especialización para la reutilización de software. La herencia es una relación de afinidad entre una clase madre (clase base) y una o varias clases hijas (clases derivadas). La clase madre permite que los objetos de las clases hijas hereden las propiedades definidas para los objetos de la clase madre. Una clase madre puede tener varias clases hijas, sin embargo para algunos lenguajes de programación orientado a objetos está restringido para que una clase hija pueda tener varias clases madres. Este mecanismo que permite que una clase hija pueda tener varias clases madres se denomina herencia múltiple. En la actualidad los lenguajes como el C# y el Java no permiten la herencia múltiple, lenguajes como el C++ permiten la herencia múltiple. Representación gráfica del significado de la herencia simple y la herencia múltiple Personas clase madre Hereda de Profesores clase hija
Mamiferos Hereda de
Hereda de
Estudiantes clase hija
Hereda de Ornitorrincos
Herencia simple Un profesor es una persona Un estudiante es una persona
Oviparos
Herencia múltiple Un ornitorrinco es un mamífero y también es un ovíparo
La figura anterior muestra como en la herencia simple un objeto que pertenezca a una clase hija puede heredar las propiedades (atributos y métodos) de una clase madre, y en una herencia múltiple un objeto de una clase hija puede heredar las propiedades definidas en varias clases madres.
EL PRINCIPIO DE LA GENERALIZACIÓN La generalización se utiliza para encontrar las propiedades comunes a un conjunto de objetos y el cual define la clase base para otras clases que heredan de esta clase base. Las propiedades de la clase base es igual a la intersección de las propiedades de todos los objetos de las clases que conforman el sistema que se modela.