Polimorfismo en JAVA

En esta entrada hablare sobre uno de los pilares de la programación orientada a objetos el polimorfismo. El polimorfismo va de la mano de la herencia, por tanto es necesario que tengamos claro el concepto de herencia en la poo para poder entender bien en que consiste el polimorfismo. 

Bien, comencemos defiendo polimorfismo, este se puede definir como algo que tiene muchas formas, pero en la programación orientada a objetos lo definimos como "la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos".  Se consigue implementar polimorfismo en jerarquías de clasificación que se dan a través de la herencia. Así como la herencia está relacionada con las clases y su jerarquía, el polimorfismo se relaciona con los métodos

Existen tres tipos de polimorfismo:



  1. Polimorfismo de sobrecarga: este polimorfismo ocurre cuando tenemos métodos con el mismo nombre, con funcionalidad similar.

  2. Polimorfismo paramétrico: este tipo de polimorfismo lo podemos definir como la capacidad tener en nuestros programa varias funciones utilizando el mismo nombre, pero usando firmas diferentes (parámetros diferentes).

  3. Polimorfismo de subtipado: este polimorfismo ocurre cuando redefinimos un método en una clases que hereda de una clase base, esto se llama especialización. 

El polimorfismo en Java consiste en dos propiedades:
La primera hace una referencia a una superclase que puede apuntar a un objeto de cualquiera de sus subclases

La segunda propiedad es la operación se selecciona en base a la clase del objeto, no a la de la referencia

Veamos un ejemplo para esto: 
Figura es la clase padre, de la cual  van a heredar nuestra clase Rectángulo y Triangulo.

  Clase Rectángulo

Clase Triangulo 


Podemos ver como aplicamos el polimorfismo paramétrico con el método mostrarNombre() donde estamos definiendo el mismo método pero con un comportamiento distinto, de igual forma lo hacemos con el método calcualarArea() , utilizamos el mismo nombre del método pero con un pase de parámetro distinto.



Clase Principal

Resultado

Podemos ver que en la imagen donde esta el resultado se imprime "Se calcula el área de la figura", estas son las líneas de la clase principal 12,13,14 cuando hacemos  rectangulo.calcularArea() estamos ejecutando el método de la clase Figura, que es el método que no se le pasa parámetros , mientras que cuando hacemos calcularArea y le pasamos los parámetros, estamos usando el método de la clase Rectangulo y se imprime "Se calcula el area del rectangulo: 6.25". 




Esto fue todo por esta entrada, espero que le sirva de ayuda... 


System.out.println("Bye World");

Comentarios

Entradas populares