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 :
- 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.
- La méthode de la super-classe n'est pas
private. - La méthode dans la sous-classe n'a pas un modificateur d'accès plus restrictif que celui de la super-classe.
- 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");
}
}