Sobes.tech
Junior

¿Cuándo se considera que un método está sobrescrito (overriding)?

sobes.tech AI

Respuesta de la IA

El método se considera sobrescrito (overriding) en programación orientada a objetos cuando:

  1. Está definido en una subclase con el mismo nombre, tipo de retorno y lista de parámetros (firma) que el método en la superclase.
  2. El método de la superclase no es private.
  3. El método en la subclase no tiene un modificador de acceso más restrictivo que el método en la superclase.
  4. En caso de excepciones, el método sobrescrito no puede declarar excepciones verificadas ([checked exceptions]) que sean más generales que las excepciones declaradas en el método original.

Al llamar al método sobrescrito en un objeto de la subclase, se ejecuta la versión del método de la subclase. Esto es un ejemplo de polimorfismo en tiempo de ejecución.

Ejemplo en Java:

// java

class Animal {
    public void makeSound() {
        System.out.println("Sonido genérico de animal");
    }
}

class Dog extends Animal {
    @Override // La anotación @Override confirma que el método ha sido sobrescrito
    public void makeSound() {
        System.out.println("Guau guau");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Miau");
    }
}