La Herencia es uno de los 4 pilares de la programación orientada a
objetos (POO) junto con la Abstracción, Encapsulación y Polimorfismo.
Al principio cuesta un poco entender estos conceptos característicos
del paradigma de la POO porque solemos venir de otro paradigma de
programación como el paradigma de la programación estructurada
(ver la entrada”Paradigmas de Programación), pero se ha de decir que
la complejidad está en entender este nuevo paradigma y no en otra
cosa.
Respecto a la herencia se han dado muchas definiciones como por ejemplo la siguiente: “La herencia
es un mecanismo que permite la definición de una clase a partir de la definición de otra ya existente.
La herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos.“.
Así de primeras esta definición es un poco difícil de digerir para aquellos que estéis empezando con
la POO, así que vamos a intentar digerir esta definición con un ejemplo en el que veremos que la
herencia no es más que un “Copy-Paste Dinámico” o una forma de “sacar factor común” al código
que escribimos.
El ejemplo que proponemos es un caso en el que vamos a simular el comportamiento que tendrían
los diferentes integrantes de la selección española de futbol; tanto los Futbolistas como el cuerpo
técnico (Entrenadores, Masajistas, etc…). Para simular este comportamiento vamos a definir tres
clases que van a representaran a objetos Futbolista, Entrenador y Masajista. De cada unos de ellos
vamos a necesitar algunos datos que reflejaremos en los atributos y una serie de acciones que
reflejaremos en sus métodos. Estos atributos y métodos los mostramos en el siguiente diagrama de
clases: