Herencia

Polimorfismo

El polimorfismo es un concepto fundamental en la programación orientada a objetos que permite que una misma operación o método pueda comportarse de diferentes maneras según el contexto en el que se utilice. En otras palabras, el polimorfismo permite que un mismo código pueda trabajar con objetos de diferentes clases, siempre y cuando estas clases compartan una relación de herencia.

¿Qué es el polimorfismo?

El polimorfismo es un concepto fundamental en la programación orientada a objetos que permite que una misma operación o método pueda comportarse de diferentes maneras según el contexto en el que se utilice. En otras palabras, el polimorfismo permite que un mismo código pueda trabajar con objetos de diferentes clases, siempre y cuando estas clases compartan una relación de herencia.

Tipos de polimorfismo

Existen dos tipos principales de polimorfismo:

  1. Polimorfismo en tiempo de compilación (sobrecarga de métodos): Este tipo de polimorfismo se refiere a la capacidad de una clase para tener múltiples métodos con el mismo nombre pero con diferentes parámetros. El compilador determina cuál método se debe ejecutar en función de los argumentos proporcionados.
  2. Polimorfismo en tiempo de ejecución (sobrescritura de métodos): Este tipo de polimorfismo se refiere a la capacidad de una clase derivada para proporcionar una implementación específica de un método que ya está definido en su clase base. En este caso, el método que se ejecuta se determina en tiempo de ejecución, dependiendo del tipo del objeto que se esté utilizando.

Ejemplo de polimorfismo en Java

public class Animal {
    protected void sound() {
        System.out.println("Animal makes a sound");
    }
}
public class Dog extends Animal {
    @Override
    protected void sound() {
        System.out.println("Dog barks");
    }
}
public class Cat extends Animal {
    @Override
    protected void sound() {
        System.out.println("Cat meows");
    }
}
public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Animal();
        Animal myDog = new Dog();
        Animal myCat = new Cat();

        myAnimal.sound(); // Output: Animal makes a sound
        myDog.sound();    // Output: Dog barks
        myCat.sound();    // Output: Cat meows
    }
}

En este ejemplo, la clase Animal tiene un método sound(), que es sobrescrito por las clases Dog y Cat. Al crear objetos de tipo Animal pero instanciados como Dog y Cat, el método sound() se comporta de manera diferente según el tipo del objeto, demostrando así el polimorfismo en tiempo de ejecución.

Consideraciones finales

El polimorfismo es una característica poderosa que permite escribir código más flexible y reutilizable. Al utilizar el polimorfismo, los programadores pueden diseñar sistemas que sean más fáciles de mantener y extender, ya que el mismo código puede trabajar con diferentes tipos de objetos sin necesidad de modificarlo. Es importante comprender cómo funciona el polimorfismo para aprovechar al máximo sus beneficios en la programación orientada a objetos.

Conclusión

El polimorfismo es un concepto esencial en la programación orientada a objetos que permite que un mismo código pueda trabajar con objetos de diferentes clases. Existen dos tipos principales de polimorfismo: el polimorfismo en tiempo de compilación (sobrecarga de métodos) y el polimorfismo en tiempo de ejecución (sobrescritura de métodos). Al utilizar el polimorfismo, los programadores pueden escribir código más flexible y reutilizable, lo que facilita el mantenimiento y la extensión de los sistemas. Comprender el polimorfismo es fundamental para cualquier programador orientado a objetos, ya que es una herramienta clave para diseñar sistemas eficientes y escalables.

Copyright Jesús Aurelio Castro Magaña © 2026