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 *