Sobes.tech
Junior — Middle

¿Cómo distinguir entre una sobrecarga de método y una sobrescritura en programación orientada a objetos?

sobes.tech AI

Respuesta de la IA

La sobrecarga de métodos (overloading) y la sobrescritura de métodos (overriding) son conceptos diferentes en la programación orientada a objetos:

  • Sobrecarga de método: es la existencia en una misma clase de varios métodos con el mismo nombre, pero diferentes parámetros (tipo, cantidad). Esto permite llamar al método con diferentes argumentos.

  • Sobrescritura de método: es cuando una subclase proporciona su propia implementación de un método que ya está definido en la clase base con la misma firma (nombre y parámetros). Esto permite cambiar el comportamiento del método para la subclase.

Ejemplo en Java:

class Animal {
    void sound() {
        System.out.println("Algún sonido");
    }

    void sound(String mood) { // sobrecarga
        System.out.println("Sonido cuando " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // sobrescritura
        System.out.println("Ladrido");
    }
}

Aquí, sound() en la clase Dog sobrescribe el método de la clase base, y sound(String mood) es una sobrecarga del método en la misma clase Animal.