Polimorfismo
Polimorfismo:
El concepto de polimorfismo se deriva de la combinación de dos palabras: Poly (Muchos) y Morfismo (Forma). Refactoriza casos de cambio/declaraciones de casos feos y complejos. El polimorfismo permite que un objeto cambie su apariencia y desempeño dependiendo de la situación práctica para poder realizar una determinada tarea. Puede ser estático o dinámico:
- El polimorfismo estático ocurre cuando el compilador define el tipo de objeto;
- El polimorfismo dinámico se produce cuando el tipo se determina durante el tiempo de ejecución, lo que hace posible para que una misma variable acceda a diferentes objetos mientras el programa se está ejecutando. Un buen ejemplo para explicar el polimorfismo es una navaja suiza. Una navaja suiza es una herramienta única que incluye un montón de recursos que se pueden utilizar para resolver problemas diferentes. Al seleccionar la herramienta adecuada, se puede utilizar una navaja suiza para realizar un determinado conjunto de tareas valiosas. De la manera dual, un bloque sumador simple que se adapta para hacer frente a, por ejemplo, los tipos de datos int, float, string y time es un ejemplo de un polimórfico recurso de programación.
¿Como conseguir el Polimorfismo?
El polimorfismo se puede obtener gracias a las Interfaces y/o las Clases Abstractas.
-
Interface: (INTERFACE)
- Son un contrato que obliga a una clase a implementar las propiedades y/o métodos definidos.
- Son una plantilla (sin lógica).
-
Clases Abstractas: (ABSTRACT)
- Son Clases que no se pueden instanciar, solo pueden ser implementadas a través de la herencia.
-
Diferencias:
Clases abstractas Interfaces 1.- Limitadas a una sola implementación. 1. No tiene limitación de implementación. 2.- Pueden definir comportamiento base. 2. Expone propiedades y métodos abstractos (sin lógica).
Tambien se puede conseguir el Polimorfismo por Referencia y/o por Punteros:
-
Referencia: (REFERENCE)
-
Puntero: (POINTER)