• Home
  • Docker
  • Kubernetes
  • LLMs
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • Archived
Java | Surcharge de méthode (method overloading)
  1. Surcharge de méthode
  2. Invocation des méthodes

  1. Surcharge de méthode
    La surcharge de méthode est un mécanisme qui permet de définir plusieurs versions pour une méthode.

    Une seule règle s'applique : la liste des paramètres de la méthode doit être différente (nombre de paramètres ou/et types des paramètres) pour chaque méthode surchargée.

    La valeur de retour, les modificateurs, et les exceptions lancées par la méthode surchargée peuvent être équivalents ou différents des autres méthodes, sans que cela affecte les règles de surcharge.


    Une méthode définie dans une superclasse peut être surchargée dans une sous-classe comme n'importe quelle autre méthode de cette sous-classe.

    Il faut se rappeler qu'il ne s'agit pas d'outrepassement (overriding) quand on change la signature (paramètres) de la méthode.
  2. Invocation des méthodes
    L'invocation des méthodes est résolue statiquement : lors de la compilation, le compilateur vérifie les arguments passés dans l'appel de la méthode ainsi que leurs types pour décider quelle méthode sera appelée à l'exécution du programme.

    Dans le cas d'une surcharge en modifiant uniquement les types des paramètres de la méthode par des sous-types, le compilateur verifie les types des arguments et les compare avec les types des paramètres de chaque méthode pour décider quelle méthode sera invoquée.


    Rappel : quand on utilise dans le code une référence pour invoquer une méthode (refVar.foo()), le compilateur regarde uniquement les méthodes qui sont déclarées pour le type (et les types parents) de cette référence (refVar), et si la méthode invoquée n'est pas parmi ces méthodes alors le compilateur générera une erreur.

    On peut utiliser le casting pour indiquer au compilateur d'utiliser un autre type pour la vérification de l'appel des méthodes ((TestClass) obj).
© 2025  mtitek