Java - 4.10 Surcharge des méthodes en Java (overloading)
La surcharge permet de donner le même nom à plusieurs méthodes d'une classe, à condition que leurs paramètres soient différents. Cette leçon reprend l'exemple d'un calcul de score pour montrer ce principe. Elle explique aussi pourquoi une signature identique provoque une erreur de compilation.
Créer une méthode de calcul de score
On commence par une méthode de calcul de score qui prend deux paramètres : le nom du joueur, sous forme de chaîne de caractères, et le score. Elle affiche le nom et le score, puis retourne le score multiplié par le nombre de points gagnés.
Pour garder le résultat, on le place dans une variable nommée score final, puis on l'affiche avec le nom du joueur. La méthode fonctionne aussi avec un score élevé, comme 500 points.
int calculScore(String nomJoueur, int score) { ... }
int calculScore(int score) { ... }
Ajouter une surcharge
Deux méthodes ne peuvent pas avoir le même nom et les mêmes paramètres. Le compilateur signale alors une erreur. Deux solutions existent : changer le nom de la méthode, ou changer le nombre de paramètres.
La seconde solution est retenue : on retire le paramètre du nom du joueur, pour ne garder que le score. L'erreur disparaît, car les deux méthodes ont maintenant des signatures différentes.
Les deux méthodes peuvent coexister, et Java choisit celle à appeler selon les arguments transmis. L'appel avec un nom et un score utilise la première, tandis que l'appel avec un seul score utilise la seconde.
En résumé
La surcharge donne le même nom à plusieurs méthodes, avec des paramètres différents. Java choisit la méthode à exécuter selon les arguments transmis. Une signature identique provoque une erreur. La vidéo se termine par un défi sur une calculatrice.
Points clés
- La surcharge utilise le même nom avec des paramètres différents.
- Deux méthodes avec la même signature provoquent une erreur de compilation.
- Changer le nombre de paramètres lève l'erreur.
- Java choisit la méthode à appeler selon les arguments transmis.
- Un défi sur une calculatrice permet de pratiquer la surcharge.
Questions fréquentes
Qu'est-ce qui distingue deux méthodes surchargées ?
Elles doivent avoir des paramètres différents, en nombre ou en type. Le nom reste le même.
Pourquoi le compilateur affiche-t-il une erreur ?
Deux méthodes de même nom et de mêmes paramètres ne permettraient pas à Java de savoir laquelle appeler.
Faut-il toujours changer le nom pour éviter l'erreur ?
Non, la vidéo montre qu'on peut aussi changer le nombre de paramètres. Les deux solutions sont possibles.