Sobes.tech
Junior — Middle

Comment distinguer une surcharge de méthode d'une redéfinition en programmation orientée objet?

sobes.tech IA

Réponse de l'IA

La surcharge de méthode (overloading) et la redéfinition de méthode (overriding) sont des concepts différents en POO :

  • Surcharge de méthode : il s'agit d'avoir plusieurs méthodes avec le même nom dans une classe, mais avec des paramètres différents (type, nombre). Cela permet d'appeler la méthode avec des arguments différents.

  • Redéfinition de méthode : c'est lorsque une sous-classe fournit sa propre implémentation d'une méthode déjà définie dans la classe de base avec la même signature (nom et paramètres). Cela permet de modifier le comportement de la méthode pour la sous-classe.

Exemple en Java :

class Animal {
    void sound() {
        System.out.println("Un son");
    }

    void sound(String mood) { // surcharge
        System.out.println("Son quand " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // redéfinition
        System.out.println("Aboyer");
    }
}

Ici, sound() dans la classe Dog redéfinit la méthode de la classe de base, et sound(String mood) est une surcharge de la méthode dans la même classe Animal.