8.3.- Herencia
En la Programación Orientada a Objetos, la herencia es un concepto semejante al de la herencia genética que se dá en la naturaleza.
En el reino animal, por ejemplo, podemos hablar de una clase base llamada aves, cuyos miembros poseen:
- plumas
- alas
- pico
Sin embargo, no todas las aves son iguales, por lo que se tiene que recurrir a las clases derivadas para distinguir unas aves de otras, como se muestra en la figura 8.3.
Figura 8.3.- Jerarquía de clases a partir de la clase aves.
Cada una de las clases derivadas conserva las características de la clase base aves, pero posee algunas otras que la distingue de las demás clases.
Hasta aquí, hemos hablado solamente de clases de aves no de las aves en sí. No nos hemos referido a ninguna ave en particular, por lo que pudieramos decir que hemos estado hablando de los "tipos de aves".
Una vez que se tienen los tipos, podemos llevar a cabo la construcción de aves. Cuando tales aves hayan cumplido su misión, podremos destruirlas.
Esto último puede parecer demasiado cruel en el mundo animal, pero en el caso de la Programación Orientada a Objetos es lo más práctico, pues resultaría un gasto innecesario de memoria el conservar los objetos que ya no van a utilizarse .
Las clases, al ser consideradas como tipos, pueden utilizarse para construir bloques de programa. Si un tipo no cumple con las especificaciones de un nuevo programa, se puede utilizar para crear otro nuevo. Este nuevo tipo se modifica para usarse en la elaboración de nuevos objetos, y a su vez queda disponible para elaborar otros tipos, según se necesite.
Es en esta creación de nuevos tipos donde se llega a la utilización de los modelos jerárquicos de clasificación.
En C++, la herencia se maneja por medio de la derivación de clases.