¿Qué es el Polimorfismo?

Polimorfismo es un término que proviene de la combinación de dos palabras griegas: poly, que significa muchos, y morph, que significa formas. Esta es una característica crucial en el ámbito de la programación orientada a objetos. El polimorfismo permite a los objetos a tomar muchas formas y que los métodos a comportarse de manera distinta según el objeto que lo llame.

En la programación, el polimorfismo proporciona la habilidad de una única interfaz representar un genérico grupo de clases. En términos más sencillos, puede permitir que una única línea de código se pueda usar con diferentes tipos de objetos, proporcionando que todos los objetos tengan un método o atributo en común al que se está llamando.

Los dos tipos de polimorfismo más comunes en la programación son el polimorfismo de tiempo de compilación (también conocido como sobrecarga o adelanto estático) y el polimorfismo de tiempo de ejecución (también conocido como sustitución o adelanto dinámico).

Ejemplos

Aquí te dejo dos ejemplos sencillos del polimorfismo:

1) Polimorfismo de tiempo de compilación:

En este caso, imagina la palabra «dibujar» puede significar diferentes cosas dependiendo del contexto. Puedes dibujar un circulo, un cuadrado o un triángulo. Adelantar este método seria determinado en el tiempo de compilación. Aquí un ejemplo en Java:

public class Forma {
  public void dibujar(){
    System.out.println ("Dibujando una forma");
  }
}

public class Circulo extends Forma {
  public void dibujar(){
    System.out.println ("Dibujando un circulo");
  }
}

public class Cuadrado extends Forma {
  public void dibujar(){
    System.out.println ("Dibujando un cuadrado");
  }
}

2) Polimorfismo de tiempo de ejecución:

Imagínate una clase de animales, donde cada animal tiene un sonido diferente. Pero todos son animales, entonces podríamos tener una clase Animal, y varias subclases (Perro, Gato, Leon) que sobrescriben el método hacerSonido(). Así se adelanta en tiempo de ejecución:

public class Animal {
  void hacerSonido() {
    System.out.println("El animal hace un sonido"); 
  }
}

class Perro extends Animal {
  void hacerSonido() {
     System.out.println("El perro ladra");
  }
}

class Gato extends Animal {
  void hacerSonido() {
    System.out.println("El gato maúlla");
  }
}

Preguntas frecuentes

  • Buscando tutoriales sobre polimorfismo en programación: Hay muchos tutoriales online para aprender sobre polimorfismo. Puedes buscar en sitios como Codecademy o W3Schools.
  • Buscando ejemplos de polimorfismo en lenguajes de programación: Aparte de los ejemplos que te proporcioné, puedes encontrar más ejemplos en la documentación oficial de cada lenguaje de programación o en sitios como StackOverflow.

Las últimas noticias en nuestro podcast semanal