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 |