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:
Existen tres tipos de polimorfismo:
- Polimorfismo de sobrecarga: este polimorfismo ocurre cuando tenemos métodos con el mismo nombre, con funcionalidad similar.
- 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).
- 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.
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.
Resultado
Esto fue todo por esta entrada, espero que le sirva de ayuda...
System.out.println("Bye World");
Comentarios
Publicar un comentario