Polimorfismo(del griego que significa: “múltiples formas”), es la cualidad que le permite a una interfaz tener acceso a una clase general de acciones. La acción específica se determina por la naturaleza exacta de la situación.
Un sencillo ejemplo de polimorfismo se encuentra en el volante de un automóvil. El volante (es decir, la interfaz) es el mismo sin importar qué tipo de mecanismo de dirección sea utilizado. Esto quiere decir, que el volante funciona de la misma forma si su carro tiene dirección manual, dirección asistida o aquella dirección de piñon y cremallera. Por lo tanto, una vez que sabes como operar el volante podrás conducir cualquier tipo de vehículo.
El mismo principio puede aplicarse también a la programación. Por ejemplo, considere un stack (en español “pila”) la cual es una lista ordenada o estructura de datos que permite almacenar y recuperar datos y en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir). Es posible que tenga un programa que requiera tres tipos diferentes de stacks (pilas). Una pila se utiliza para valores enteros, uno para para valores de coma flotante y uno para caracteres. En este caso, el algoritmo que implementa cada stack (pila) es el mismo, a pesar de que los datos que se almacenan son diferentes. En un lenguaje que no sea orientado a objetos, usted se verá obligado a crear tres diferentes conjuntos de rutinas de stacks (pilas), con cada juego usando diferentes nombres (trabajoso demás no?). Pero ahí es que interviene el polimorfismo en Java, con el cual usted puede crear un conjunto general de rutinas de stack (pilas) que funcione para las tres situaciones específicas. De esta manera, una vez que sabes como usar un stack (pila), podraz utilizar cualquier una de ellas.
De manera más general, el concepto de polimorfismo se expresa a menudo por la frase “una interfaz, múltiples métodos”. Esto significa que es posible diseñar una interfaz genérica para un grupo de actividades relacionadas. El polimorfismo ayuda a reducir la complejidad al permitir que la misma interfaz se utilice para especificar una clase general de acción. Siendo este el trabajo del compilador para seleccionar una acción específica (por ejemplo, el método) que se aplica a cada situación. Siendo así, usted programador no necesitará hacer esta selección manualmente, sólo necesita recordar y utilizar la interfaz general.
Post A Comment:
0 comments: