29 de enero de 2019

Polimorfismo

El Polimorfismo es uno de los conceptos que siempre suenan cuando se habla de POO junto con la encapsulación o la herencia. Sin embargo aplicarlo no es nada nuevo, llevamos ya muchas sesiones usándolo aunque no hayamos nombrado el concepto.

En resumen: dos objetos de distinto tipo pueden recibir el mismo mensaje (invocación de un método) y responder de dos (Poli) formas (morfia) distintas.

Polimorfismo: objetos de distinto tipo pueden recibir el mismo mensaje y responder de forma distinta


¿Dónde hemos usado polimorfismo?

Te invito a que pienses un momento sobre si hemos utilizado una misma invocación a distintos objetos y el resultado fue distinto.

Estos ejemplos ya vistos usan polimorfismo:
  1. Método toString() de todos los objetos que hemos visto (Integer, String, Coche, etc...) todos nos devuelven un String, pero cada uno lo construye de maneras distintas
  2. Particularmente para nuestros ejemplos de vehículos, unos tienen matrícula, otros ruedas, incluso un barco con su eslora... a todos se les llama con toString() y devuelven un String pero lo calculan de manera distinta
  3. Método setColor(String color): Ahora la invocación añade el argumento color. Podíamos poner el color que quisiéramos hasta que instanciamos nuestra Harley-Davidson que sólo aceptaba dos colores. Pasó de una simple asignación a avisarnos que hay limitaciones con ese objeto = polimorfia.
  4. Veremos más ejemplos cuando lleguemos a las Interfaces viendo como tipos sin relación responden distinto a un mismo mensaje.

Esta es la entrada más corta que he hecho y quiero dejarla así porque la próxima vez que oigas el concepto polimorfismo no quiero que te eches las manos a la cabeza, quiero que pienses que es uno de los conceptos más simples pero potentes de la POO.

No hay comentarios:

Publicar un comentario

Compárteme

Entradas populares