Cuando escuchamos el termino de herencia, de manera automática viene a nuestra mente algún bien material que podemos adquirir de algún familiar, alguna característica obtenida de nuestros padres o incluso alguna enfermedad, pero la herencia va mucho mas allá de esto, ya que puede aplicar a muchos objetos de estudio relacionados con la Genética, el Derecho, la Biología entre otros.
Tomemos el ejemplo típico de herencia familiar, cuando 2 personas hombre y mujer procrean un ser humano, este comparte rasgos de los 2 individuos, este nuevo ser nace con una remarcable herencia genética donde obtiene características físicas y de comportamiento del padre y de la madre.
¿Tendrá la sonrisa del padre ó la inteligencia de la madre?, La herencia hace posible que se pueden transferir desde parecidos físicos hasta enfermedades.
Hablando en términos de programación orientada o objetos, la herencia es el mecanismo donde se crean una o varias clases a partir de una clase que ya existe, en este contexto las nuevas clases se denominan subclases y la clase a partir de la cual se crean las subclases se denomina clase primaria, clase padre o superclase.
Las subclases contienen los atributos y métodos obtenidos de la clase padre, la mayor ventaja de esto es que se pueden definir nuevos atributos y nuevos métodos para las subclases.
Las ventajas de utilizar la herencia en la programación orientada a objetos son:
- Jerarquización: La herencia hace posible crear jerarquías que representan la relación ordenada de las clases que están relacionadas.
- Reutilización de Código: método que permite que una parte o la totalidad de un programa se pueda ocupar en la construcción de otro programa.
- Ahorrar tiempo: Esto se da como consecuencia de realizar una buena jerarquización de clases y de la reutilización de código.
Veamos un ejemplo, la clase vehículo posee los atributos: (numero de placas, color y modelo) ademas posee también los métodos: (Acelerar, frenar y cambiar de Velocidad). Haciendo un razonamiento rápido vamos a crear 3 nuevas clases (automóvil, camión y motocicleta),de los cuales sabemos que son vehículos y podemos decir que si aplicamos la herencia a estas 3 nuevas clases, estaríamos heredando los atributos y los métodos de la clase vehículo. De manera formal podemos decir que tenemos una superclase vehículo y 3 subclases, automóvil, camión y motocicleta cada una con sus propios atributos y métodos.
A pesar de que hemos mostrado este ejemplo, podemos decir que “No existe un ejemplo base para ejemplificar la herencia, ya que cada problema posee una solución particular dependiendo el contexto en el que se encuentre, sin embargo para este caso seré breve con el siguiente ejemplo, tratando de mostrar la forma mas sencilla en que funciona la herencia”.
Como conclusión te puedo decir que la herencia es una herramienta poderosa que proporciona un marco adecuado para producir software fiable, comprensible, de bajo costo, adaptable y reutilizable.