¿Qué es Polimorfismo?

¿Qué es el polimorfismo y cómo puede mejorar tu código? Aprende a implementar el polimorfismo en tu propio código y descubre cómo puede simplificar y mejorar tu código.

Josué Caro
Josué Caro

Polimorfismo se refiere a la capacidad de una función o método de ser utilizado de maneras diferentes en diferentes contextos en la programación. Esto significa que una función o método puede tener varias formas de ser utilizado. Es útil porque permite crear código más flexible y reutilizable.

Para entender más, veámoslo representado en código, el siguiente fragmento de código es en Typescript.

class Vehiculo {
  // Método abstracto que será sobrescrito por las clases hijas
  public abstract conducir(): void;
}
Creamos una clase padre Vehiculo

La clase Vehiculo es la clase padre y tiene un método abstracto llamado conducir no tiene una implementación. Esto significa que cualquier clase que herede de Vehiculo debe sobrescribir el método conducir y proporcionar su propia implementación.

class Auto extends Vehiculo {
  public conducir(): void {
    console.log("Estoy conduciendo un auto.");
  }
}

class Motocicleta extends Vehiculo {
  public conducir(): void {
    console.log("Estoy conduciendo una motocicleta!");
  }
}
Creamos dos clases hijas que extienden de Vehiculo

Las clases Auto y Motocicleta son clases hijas que heredan de Vehiculo y sobrescriben el método conducir de manera diferente. La clase Auto tiene una implementación del método conducir que imprime "Estoy conduciendo un auto." en la consola, mientras que la clase Motocicleta tiene una implementación del método "conducir" que imprime "Estoy conduciendo una motocicleta!" en la consola.

function conducirVehiculo(vehiculo: Vehiculo) {
  vehiculo.conducir();
}
Podemos crear una función donde reciba un Vehículo

La función conducirVehiculo toma un objeto de tipo Vehiculo como parámetro y llama al método conducir en ese objeto. Esto significa que la función conducirVehiculo puede funcionar con cualquier objeto que tenga un método conducir sobrescrito adecuadamente.

const auto = new Auto();
const motocicleta = new Motocicleta();

// Estas llamadas a la función conducirVehiculo utilizarán la versión sobrescrita del método conducir
// en las clases Auto y Motocicleta, respectivamente.
conducirVehiculo(auto); // Imprimirá "Estoy conduciendo un auto."
conducirVehiculo(motocicleta); // Imprimirá "Estoy conduciendo una motocicleta!"

Finalmente, se crean dos objetos: uno de tipo Vehiculo y otro de tipo Motocicleta. Luego, se llama a la función conducirVehiculo con cada uno de estos objetos. Cuando se llama a la función conducirVehiculo con el objeto de tipo Vehiculo, se utiliza la versión sobrescrita del método conducir en la clase Auto, que imprime "Estoy conduciendo un auto." en la consola.

Del mismo modo, cuando se llama a la función conducirVehiculo con el objeto de tipo Motocicleta, se utiliza la versión sobrescrita del método conducir en la clase Motocicleta, que imprime "Estoy conduciendo una motocicleta!" en la consola. Esto es polimorfismo.

¿En donde se puede utilizar el polimorfismo?

Es bastante usado en la programación, algunos ejemplos usados en la industria son:

  1. El polimorfismo en un videojuego puede utilizarse para dotar a un personaje de capacidades y habilidades variadas que pueden adaptarse a contextos distintivos. Por ejemplo, un personaje puede tener la posibilidad de invocar una capacidad que puede emplearse para manifestar un resultado deseado.
  2. En una aplicación de seguimiento de actividad física, se puede utilizar el polimorfismo para que diferentes tipos de actividades (como caminar, correr y hacer ejercicio en el gimnasio) se maneje el conteo de pasos de maneras diferentes.

En conclusión, el polimorfismo es un concepto clave en la programación que permite que una función o método tenga múltiples formas. Esto puede ser muy útil en una amplia variedad de aplicaciones, ya que permite que diferentes objetos o elementos se manejen de maneras diferentes dependiendo del contexto.

Si estás interesado en aprender más sobre el polimorfismo y cómo se puede utilizar en tu propio código, hay muchos recursos en línea que pueden ayudarte a profundizar en este tema. ¡Esperamos que hayas disfrutado este post y hayas aprendido algo nuevo sobre el polimorfismo!

ProgramaciónShorts

Josué Caro

Líder apasionado, curioso y comprometido con la tecnología que está siempre buscando formas de compartir su conocimiento y prepararse más para el futuro.

Comentarios