Sobes.tech
Junior

Quand une méthode est-elle considérée comme redéfinie (overriding) ?

sobes.tech IA

Réponse de l'IA

La méthode est considérée comme redéfinie (overriding) en programmation orientée objet lorsque :

  1. Elle est définie dans une sous-classe avec le même nom, le même type de retour et la même liste de paramètres (signature) que la méthode dans la super-classe.
  2. La méthode de la super-classe n'est pas private.
  3. La méthode dans la sous-classe n'a pas un modificateur d'accès plus restrictif que celui de la super-classe.
  4. En cas d'exceptions, la méthode redéfinie ne peut pas déclarer des exceptions vérifiées ([checked exceptions]) qui sont plus générales que celles déclarées dans la méthode redéfinie.

Lorsqu'on appelle la méthode redéfinie sur un objet de la sous-classe, c'est la version de la méthode de la sous-classe qui s'exécute. C'est un exemple de polymorphisme à l'exécution.

Exemple en Java :

// java

class Animal {
    public void makeSound() {
        System.out.println("Son de l'animal générique");
    }
}

class Dog extends Animal {
    @Override // L'annotation @Override confirme que la méthode est redéfinie
    public void makeSound() {
        System.out.println("Wouf wouf");
    }
}

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