¿Qué es el polimorfismo en la programación orientada a objetos?
El polimorfismo es uno de los pilares fundamentales de la programación orientada a objetos. Este concepto avanzando el principio de herencia al permitir que las subclases puedan modificar o incluso anular el comportamiento de los métodos y atributos que heredan de una superclase. Aunque una subclase herede los métodos y atributos de una clase madre, el polimorfismo permite alterar dicho comportamiento.
¿Cómo funciona el polimorfismo en los ejemplos prácticos?
Para ilustrar cómo el polimorfismo puede ser útil, consideremos un escenario con distintas clases de estudiantes: "gratuitos", "básicos" y "expertos". Todos heredan de una superclase llamada Student. Una función común para todas estas subclases podría ser la de publicar comentarios.
classStudent{publicarComentario(){return"Este comentario fue publicado por un estudiante.";}}
Sin embargo, si creamos un nuevo tipo de estudiante, digamos "estudiantes profesores" o Teacher-Students, estos podrían tener un método de publicación de comentarios que destaque la autoridad del comentario al ser realizado por un profesor.
classTeacherStudentextendsStudent{publicarComentario(){return"Esta es la respuesta oficial de la profesora.";}}
Los Teacher-Students podrían compartir los mismos atributos que los demás estudiantes, pero el polimorfismo permite que cambien la implementación del método publicarComentario.
¿Cuántos tipos de polimorfismo existen?
En algunos lenguajes de programación orientados a objetos existen varios tipos de polimorfismo: sobrecarga, paramétrico e inclusión.
¿Qué es el polimorfismo de sobrecarga y paramétrico?
El polimorfismo de sobrecarga y paramétrico permite definir varios métodos con el mismo nombre dentro de una clase, pero variando el tipo y número de parámetros que reciben. Esto es común en lenguajes como Java, donde se puede tener métodos como los siguientes:
publicvoidmetodoEjemplo(int numero){// Código para manejar un entero}publicvoidmetodoEjemplo(String texto){// Código para manejar un texto}
Así, un mismo método puede actuar de manera diferente según los parámetros que reciba.
¿Cómo se aplica el polimorfismo en JavaScript?
En JavaScript, el polimorfismo que podemos usar es el de inclusión. Esto nos permite sobrescribir métodos o atributos heredados de una superclase:
classMiClaseBase{metodo(){console.log('Método de la clase base.');}}classMiSubClaseextendsMiClaseBase{metodo(){console.log('Método sobrescrito en la subclase.');}}
En este ejemplo, incluso si llamamos a metodo() desde una instancia de MiSubClase, obtendremos la implementación del método sobrescrito en lugar del original de la clase base.
Consejos prácticos sobre polimorfismo
Aprovecha la flexibilidad: El polimorfismo permite añadir nuevos comportamientos sin modificar el código existente.
Piensa en extensibilidad: Diseña tus clases para poder ser modificadas en el futuro a través del polimorfismo.
Utiliza las herramientas del lenguaje: Dependiendo del lenguaje que utilices, aprovecha los distintos tipos de polimorfismo con las herramientas que cada uno ofrece.
Con estas prácticas, puedes escribir código más limpio, modular y fácil de mantener. Continúa aprendiendo más sobre programación orientada a objetos para sacar el máximo partido del polimorfismo y otros conceptos fundamentales.
¿QUÉ ES EL POLIMORFISMO?
Es como la herencia reloaded. Es como ‘La Herencia 2.0’. Es un pilar de la OOP. Lo que es importante es lo que se puede hacer con este: Permite a nuestras subclases cambiar o anular los comportamientos de los métodos y atributos del prototipo madre, de la clase madre. Aunque herede las propiedades, el polimorfismo permite cambiar su comportamiento.
·
Tipos:
Polimorfismo de Sobrecarga: ocurre cuando existen métodos con el mismo nombre y funcionalidad similar en clases totalmente independientes entre ellas.
Polimorfismo Paramétrico: El polimorfismo paramétrico es la capacidad para definir varias funciones utilizando el mismo nombre, pero usando parámetros diferentes (nombre y/o tipo).
Polimorfismo de Inclusión (JS): La habilidad para redefinir por completo el método de una superclase en una subclase.
Un ejemplo claro del Polimorfismo es el de la imagen, todas las figuras heredan de la super-Clase Figura.
Todas ellas pueden Dibujarse, pero cada una lo hará diferente dependiendo de la figura que sea.
Nota: la palabra elegante para la capacidad de múltiples tipos de objetos de implementar la misma funcionalidad es polimorfismo. Por si acaso te preguntabas.
Resumen polimorfismo
El polimorfismo en JavaScript les permite a nuestras subclases cambiar o anular el comportamiento de los métodos o atributos que anidaron de una super clase.
Existen estos tipos de polimorfismo según sea el lenguaje de programación: sobrecarga paramétrico e inclusión.
En JavaScript solo podemos utilizar el polimorfismo de inclusión, nos va a permitir sobrescribir que método o atributo heredado vamos a cambiar de la superclase.
Investigué un poco sobre los distintos tipos de polimorfismo:
Les dejo la fuente.)
Aquí lo que obtuve de la fuente:
Sobrecarga
Ocurre cuando las existen funciones con el mismo nombre y con funcionalidad similar, pero que están es clases que son independientes unas de otras.
Por ejemplo si tuvieramos la clases complex, image, link; y todas tuvieran la función display() para que impriman en pantalla. No hay necesidad de saber qué vamos a imprimir, ya que solo queremos ver un resultado en pantalla.
Con el polimorfismo de sobrecarga podemos definir operadores que tengan variación en su comportamiento, en función de los parámetros con los que trabajen.
Por ejemplo: si a la función display usa el operador +, y le pasamos dos numeros como parametros, queremos que sume esos números y muestre el resultado en pantalla; sin embargo, si le pasamos dos cadenas queremos que concatene esas cadenas y muestre el resultado en pantalla.
Paramétro
El polimorfismo paramétrico va a aplicar un método u otro en función de los paramétros que se le pasen.
Por ejemplo: si tuvieramos varios métodos de suma: int addition, float addition, char addition. Respectivamente suma de números enteros, flotantes y carácteres. Si nosostros pasamos parámetros que sean enteros, flotantes o carácteres, se aplicará un método correspondiente.
Inclusión
Se puede llamar un método de objeto sin tener que conocer su tipo. Nos permite no tomar en cuenta detalles de las clases especializadas de una familia de objetos.
Permite a las subclases cambiar o anular el comportamiento el cual heredaron de una superclase
El polimorfismo nos permite cambiar el comportamiento tanto de atributos y métodos
Tipos de polimorfismo
Existen lenguajes como Java que al cambiar la cantidad o tipo de parámetros y pueden mantener el nombre
Sobrecarga
Paramétrico
JavaScript nos permite utilizar solo:
Inclusión
Es decir que sobreescribiremos el método que queramos modificar
📌 **RESUMEN:** El polimorfismo permite a nuestras subclases cambiar o anular los comportamientos de los métodos y atributos de la superclase o prototipo madre
El polimorfismo significa "Muchas formas", en este caso significa "Muchos comportamientos". Comportamientos de los métodos que se heredan. Lo que hace JS (por ahora) es simplemente sobrescribir esos métodos para que cada "Sub-prototipo" pueda tener distintos comportamientos o incluso distintas validaciones
El polimorfismo sucede en las subclases cuando podemos cambiar el comportamiento de algún método que están heredando, nos permite cambiar el comportamiento.
Tenemos diferentes tipos de polimorfismo, algunos son:
Sobrecarga: cuando tenemos métodos con el mismo nombre y funcionalidad similar pero en clases diferentes
Paramétrico: podemos definir varias funciones utilizando el mismo nombre pero usando parámetros diferentes
Inclusión: nos permite sobre escribir el método que estamos heredando pero queramos cambiar de la superclase.
📌 El polimorfismo se refiere a que las clases que heredan atributos y métodos de una clase madre, pueden comportarse de muchas formas diferentes. ¿Cómo cambian su comportamiento? Cambiando o anulando atributos y métodos de la clase madre.
Por lo general diremos que existen 3 tipos de polimorfismo:
Sobrecarga: El más conocido y se aplica cuando existen funciones con el mismo nombre en clases que son completamente independientes una de la otra.
Paramétrico: Existen funciones con el mismo nombre pero se usan diferentes parámetros (nombre o tipo). Se selecciona el método dependiendo del tipo de datos que se envíe.
Inclusión: Es cuando se puede llamar a un método sin tener que conocer su tipo, así no se toma en cuenta los detalles de las clases especializadas, utilizando una interfaz común.
Veremos que el polimorfismo y la herencia son dos conceptos estrechamente ligados. Conseguimos implementar polimorfismo en jerarquías de clasificación que se dan a través de la herencia. Por ejemplo, tenemos una clase vehículo y de ella dependen varias clases hijas como coche, moto, autobús, etc.
Definición: Es la capacidad que tienen ciertos lenguajes para hacer que, al enviar el mismo mensaje (o, en otras palabras, invocar al mismo método) desde distintos objetos, cada uno de esos objetos pueda responder a ese mensaje (o a esa invocación) de forma distinta.
Tipos de polimorfismo:
Sobrecarga : El más conocido y se aplica cuando existen funciones con el mismo nombre en clases que son completamente independientes una de la otra.
Paramétrico : Existen funciones con el mismo nombre pero se usan diferentes parámetros (nombre o tipo).
**Inclusión ** (usaremos en JS) : La habilidad para redefinir por completo el método de una superclase en una subclase es lo que se conoce como polimorfismo de inclusión (o redefinición).
Poli >> multiple
Morfo >> forma
Polimorfismo >> capacidad de tomar varias formas
En esta caso especifico comportarse diferente teniendo el mismo nombre
«Este pilar de la programación orientada a objetos le permite a nuestras subclases cambiar o incluso anular el comportamiento de los métodos o atributos que heredaron de una superclase» 🥲
Bueno por ahora solo guardare en mi cabecita que hay tres tipos de polimorfismo y teniendo muy en cuenta que es el polimorfismo y que en JavaScript solo se puede aplicar el tipo de inclusión