Junior — Middle
Quels changements doivent être apportés à la définition de la classe pour assurer sa capacité à utiliser le polymorphisme?
sobes.tech IA
Réponse de l'IA
Pour assurer la possibilité d'utiliser le polymorphisme en Java, il est nécessaire de :
- Rendre les méthodes destinées à être redéfinies dans les sous-classes non statiques et non finales.
- Utiliser le mot-clé
overridedans les sous-classes pour redéfinir les méthodes de la classe de base. - Dans la classe de base, les méthodes doivent être déclarées comme
publicouprotected(pour que les sous-classes puissent les redéfinir).
Exemple :
class Animal {
public void sound() {
System.out.println("Un son");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Aboyer");
}
}
// Utilisation du polymorphisme
Animal animal = new Dog();
animal.sound(); // Affiche "Aboyer"
Ainsi, pour supporter le polymorphisme, les méthodes doivent être virtuelles (en Java, toutes les méthodes non statiques sont virtuelles par défaut). L'essentiel est de ne pas rendre les méthodes static ou final.