Curso de programación certificado polimorfismo - AEPI
En Java, el polimorfismo es un principio de programación orientada a objetos que permite a un objeto comportarse de varias formas. Hay dos tipos principales de polimorfismo en Java: polimorfismo de compilación (o estático) y polimorfismo de ejecución (o dinámico). Ambos están relacionados con el concepto de herencia y la capacidad de una clase base de ser referenciada por una clase derivada. Polimorfismo de compilación (Estático): Este tipo de polimorfismo se logra mediante la sobrecarga de métodos y la sobrecarga de constructores. La decisión sobre qué método o constructor llamar se toma en tiempo de compilación, basándose en la firma del método o constructor.
public class PolimorfismoEstatico {
    public int suma(int a, int b) {
        return a + b;
    }

    public double suma(double a, double b) {
        return a + b;
    }

    public static void main(String[] args) {
        PolimorfismoEstatico obj = new PolimorfismoEstatico();
        int resultadoInt = obj.suma(3, 4);
        double resultadoDouble = obj.suma(3.5, 4.2);
    }
}
Polimorfismo de ejecución (Dinámico): Este tipo de polimorfismo está relacionado con la capacidad de una clase derivada de proporcionar una implementación específica de un método que ya está definido en su clase base. La decisión sobre qué método llamar se toma en tiempo de ejecución.
class Animal {
    public void hacerSonido() {
        System.out.println("Sonido genérico de un animal");
    }
}

class Perro extends Animal {
    public void hacerSonido() {
        System.out.println("Guau guau");
    }
}

class Gato extends Animal {
    public void hacerSonido() {
        System.out.println("Miau miau");
    }
}

public class PolimorfismoDinamico {
    public static void main(String[] args) {
        Animal miPerro = new Perro();
        Animal miGato = new Gato();

        miPerro.hacerSonido();  // Imprime: Guau guau
        miGato.hacerSonido();   // Imprime: Miau miau
    }
}

En este ejemplo, la clase Animal tiene un método hacerSonido(), y las clases derivadas Perro y Gato sobrescriben este método para proporcionar sus propias implementaciones. En el método main, se crea un objeto miMascota de tipo Animal pero se instancia como un Perro. Luego, se cambia la instancia a un objeto Gato. A pesar de que miMascota es declarado como tipo Animal, el método hacerSonido() se comporta de manera polimórfica, ejecutando la implementación específica de la clase real en tiempo de ejecución.

Este comportamiento dinámico facilita la extensibilidad y la flexibilidad en el diseño de software, ya que se pueden agregar nuevas clases derivadas sin tener que modificar el código que utiliza la clase base.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies