Surchargement
Dans la partie précédente, nous avons déjà utilisé le surchargement dans la classe Person
car elle avait trois constructeurs. C'est un exemple simple. Le surchargement est une fonctionnalité qui permet à une classe d'avoir plus d'une méthode avec le même nom. Ainsi, nous pouvons gérer différentes situations et ne pas être confus. En général, il existe trois façons d'effectuer un surchargement :
- Nombre différent de paramètres
- Types différents de paramètres
- Ordre différent de types différents de paramètres
Exemple :
Écrivez le code suivant dans le fichier /home/labex/project/overloadingTest.java
:
public class overloadingTest{
public static void main(String[] args){
overloadingTest test = new overloadingTest();
System.out.println("add(10,20)= " + test.add(10,20));
System.out.println("add(10,20,30)= " + test.add(10,20,30));
System.out.println("add(5.5, 10.5)= " + test.add(5.5f, 10.5f));
test.printInfo(1, "an error!");
test.printInfo("another error!", 2);
}
// cette méthode a deux paramètres int, renvoie un entier
int add(int a, int b){
return a+b;
}
// cette méthode a trois paramètres int, renvoie un entier
int add(int a, int b, int c){
return a+b+c;
}
// cette méthode a deux paramètres float, renvoie un nombre float
float add(float a, float b){
return a+b;
}
// cette méthode a un paramètre string et un paramètre int, ne renvoie rien
void printInfo(String str, int code){
System.out.println("Code: " + code + "\nMessage: " + str);
}
// cette méthode a un paramètre int et un paramètre string, ne renvoie rien
void printInfo(int code, String str){
System.out.println("Code: " + code + "\nMessage: " + str);
}
}
Sortie :
Exécutez le fichier overloadingTest.java
en utilisant les commandes suivantes :
javac /home/labex/project/overloadingTest.java
java overloadingTest
Voyez la sortie :
add(10,20)= 30
add(10,20,30)= 60
add(5.5, 10.5)= 16.0
Code: 1
Message: an error!
Code: 2
Message: another error!