Sobes.tech
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é override dans 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 public ou protected (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.