Polimorfismo y sus tipos - Tensho97/Aprende-a-Aprender GitHub Wiki

Es un término de programación usado en una relación de tipo Herencia, que dice que un objeto perteneciente a la clase padre, puede almacenar un objeto de cualquiera de las clases hijas. La clase padre es compatible con los tipos derivados, pero no al revés. Se refiere a las 'muchas formas' que puede tomar un objeto.

Ejemplo: Tenemos la clase Figura, de la que heredan la Triangulo, y Circulo. Si declaramos dos variables de tipo Figura, podemos almacenar en ellas tanto un objeto Triangulo, como un objeto Circulo. Además, ambos heredan el método getArea().

Figura x,y;
x = new Triangulo()
y = new Circulo()
x.getArea()
y.getArea()

Ambos usan el método de la clase padre, pero según sea un Triángulo o un Círculo su funcionamiento es diferente.

  • Diferencia entre sobrecarga y polimorfismo: se entiende que Sobrecarga hace referencia a un conjunto de Métodos con el mismo Nombre pero diferente Número de Parámetros y/o Tipos de estos, además que estos Métodos se encuentran definidos en una misma Clase. En tanto que Polimorfismo hace referencia a un conjunto de Métodos con el mismo Nombre e igual Número de Parámetros y Tipos, pero que se encuentran definidos en diferentes Clases. Cuando sobrecargamos un método, nuestro objetivo es que tanto uno como el otro hagan la misma funcionalidad, mientras que el polimorfismo se utiliza para realizar diferentes funcionalidades.

Hay varios tipos de polimorfismo:

  • El polimorfismo paramétrico: es la capacidad para definir varias funciones utilizando el mismo nombre, pero usando parámetros diferentes (nombre y/o tipo). El polimorfismo paramétrico selecciona automáticamente el método correcto a aplicar en función del tipo de datos pasados en el parámetro. Por lo tanto, podemos por ejemplo, definir varios métodos de addition(), efectuando una suma de valores.
    • El método int addition (int, int) devolvería la suma de dos números enteros.
    • El método float addition (float, float) devolvería la suma de dos flotantes.
    • El método char addition (char, char) daría por resultado la suma de dos caracteres definidos por el autor.

Según los parámetros que le pasemos, se determinará a qué método llamar.

  • El polimorfismo de inclusión (o de subtipado): es un concepto que se refiere a la acción de llamar un método de un objeto sin tener que conocer su tipo. Es decir, no tenemos en cuenta los detalles de las clases relacionadas, enmascarando la relación entre ellas con una interfaz común (que actúa como la clase base).


Autora: Vanesa