1.1.5 Herencia y polimorfismo

¿Qué es Herencia?

La herencia puede definirse como:

La especialización de entidades, partiendo de conceptos generales hasta llegar a conceptos más particulares formando una jerarquía.

  • La herencia organiza entidades en un orden particular. Esta organización depende de la perspectiva tomada, es decir, si vamos de lo general a lo particular o viceversa. A través del uso de este mecanismo podemos factorizar estructura y comportamiento compartido entre entidades.
  • En cualquier tipo de sistema es factible identificar diferentes tipos de jerarquías de herencia.
  • La herencia es una organización taxonómica que permite reconocer similitudes y diferencias entre objetos.
Hay una frase para validar que la herencia se encuentre bien aplicada, que consiste en que el hijo siempre sea una especialización del padre (es un).
 
 
 
¿Qué es Polimorfismo?
 
La habilidad de ocultar múltiples implantaciones detrás de una misma interfase.
 

La palabra griega polimorfos significa “múltiples formas”. Cada operación de una interfaz debe poseer, al menos, una implantación. Sin embargo, en algunos casos es posible que una misma operación posea múltiples implantaciones.  A esto se le conoce como polimorfismo.

Como ejemplo, podríamos tener una clase que haga la suma de los elementos que recibe y que, dependiendo de los parámetros que en ese momento obtenga, será la implantación que seleccione.

Si recibe enteros, entonces realizaría una suma; pero en el caso de recibir cadenas, en lugar de hacer una suma, realizaría una concatenación.

 

En este ejemplo, se desea obtener el valor actual de un instrumento financiero. Sin  embargo, cada instrumento tiene su propio algoritmo, mediante el cual se obtiene ese valor. Si no tuviéramos un ambiente orientado a objetos, deberíamos describir código que explícitamente mande a ejecutar la operación del objeto financiero en el que estamos interesados.

Sin embargo, en un  ambiente orientado a objetos, haciendo uso del mecanismo de polimorfismo, dinámicamente el ambiente seleccionará la implantación correcta de la operación, dependiendo del objeto que estemos manipulando, sin necesidad de seleccionarlo explícitamente. Este es el beneficio del mecanismo de polimorfismo.