Sobes.tech
Junior

Qu'est-ce qui doit différencier deux méthodes pour que nous puissions les considérer comme surchargées?

sobes.tech IA

Réponse de l'IA

Pour que deux méthodes soient considérées comme surchargées, elles doivent répondre aux conditions suivantes:

  • Même nom de méthode. Le nom des méthodes doit être identique.
  • Signature différente de la méthode. La signature de la méthode inclut le nom de la méthode et la liste des types de paramètres (leur nombre, ordre et types). Le type de retour de la méthode nest pas une partie de la signature et n’affecte pas la surcharge.

Exemples:

class Example {
    void print(int num) { // Signature : print(int)
        System.out.println(num);
    }

    void print(String text) { // Signature : print(String)
        System.out.println(text);
    }

    void print(int num, String text) { // Signature : print(int, String)
        System.out.println(num + " " + text);
    }

    // Ce n’est pas une surcharge, car la signature print(int) est répétée
    // int print(int num) {
    //     return num;
    // }
}

Table illustrant des exemples de surcharge:

Nom de la méthode Types de paramètres Méthodes identiques / différentes Est-ce une surcharge ? Raison
calc (int, int) Différentes Oui Signature différente (nombre et types de paramètres)
calc (double, double) Différentes Oui Signature différente (types de paramètres)
calc (int, int, int) Différentes Oui Signature différente (nombre de paramètres)
calc () Différentes Oui Signature différente (nombre de paramètres)
calc (int, int) Identiques Non Même signature
calculate (int, int) Différentes Non Nom de la méthode différent