Que es el Polimorfismo?

Si son nuevos en la programación seguramente esta palabra les causar dolor de cabeza ya que desde mi punto de vista esta es la caracterizara del paradigma orientado a objetos mas difícil de comprender pero no se preocupen tratare de explicarles lo mas simplemente posible.

El polimorfismo permite que nuestro programa realice tareas que se definirán hasta el tiempo de ejecución.

Si escribimos un código que sume dos números nuestra programación sera muy simple ya que podemos determinar el comportamiento del programa con solo ver el código, por ejemplo

public class Main{

public static void main(String[] args){

Operacion op= new Operacion();

double suma = op.operacion(5,10);

System.out.println(“Suma ==> ” + suma);

}

}

public class Operacion{

public double operacion(double a, double b){

return a +b;

}

}

Con solo ver el siguiente código podemos determinar que el programa sumara dos numero y finalizara ya que código a ejecutar esta definido de esta forma y nada puede hacer que cambie en tiempo de ejecución. Sin embargo con el polimorfismos esto cambia ya la funcionalidad que se ejecuta dependerá de la implantación que se le de aun método determinado.

Una vez comprendido el código anterior veremos como trabajaría con polimorfismo.

Imaginemos que ya tenemos definidas las clases anteriores pero hora definimos una nueva clase llamada Resta la cual extiende de “Operacion” pero en vez de sumar los números los resta:

public class Resta extends Operacion{

public double operacion(double a, double b){

return a – b;

}

}

Podemos apreciar que el método “operacion” esta definido igual que en la clase “Operacion” lo que provoca algo llamada Override o sobre escribir el método.

Con esto en mente modificaremos el método main de la clase anterior y veremos lo que sucede:

public class Main{

public static void main(String[] args){

Operacion opSum= new Operacion();

double suma = opSum.operacion(5,10);

System.out.println(“Suma ==> ” + suma);

Operacion opRest = new Resta(5,10);

double resta = opRest.operacion();

System.out.println(“Resta ==> ” + resta);

}

}

Como resultado tendremos la suma de 5 + 10 = 15 seguido de la resta de 5-10 = -5.

La clave aquí es que opRest a pesar de tipo “Operacion” tiene asignada una referencia a una instancia de la clase Resta la cual al extender de “Operacion” nos permite asignarla a una variable de tipo “Operacion” esto hace que en tiempo de ejecución el metodo “operacion” de la variable opRest ejecute el código de la clase Resta en vez de la clase “Operacion”

Bien a esto se le llama Polimorfismo…

 

2 thoughts to “Que es el Polimorfismo?”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *