¿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.