Surcharge de méthode en Java

La surcharge de méthode est un concept qui permet à une classe d’avoir plusieurs méthodes portant le même nom, si leurs listes d’arguments sont différentes. Il est similaire à la surcharge de constructeur en Java, qui permet à une classe d’avoir plus d’un constructeur ayant des listes d’arguments différentes.

Liste d’arguments, signifie les paramètres d’une méthode: Par exemple, la liste d’arguments de la méthode somme(int x, int y) ayant deux paramètres est différente de la méthode somme(int x, int y, int z) ayant trois paramètres.
 
 

Deux façons de surcharger une méthode:

Afin de surcharger une méthode, les listes d’arguments des méthodes doivent différer dans l’un ou l’autre:
 

1- Nombre de paramètres

Par exemple: Ceci est un cas valide de surcharge.

somme(int, int)
somme(int, int, int)

 

2- Type de données des paramètres

Par exemple: Ceci est un cas valide de surcharge.

somme(int, int)
somme(int, double)

 

Cas non valide de surcharge de méthode:

Quand on dit liste d’arguments, on ne parle pas du type de retour de la méthode, par exemple si deux méthodes ont le même nom, les mêmes paramètres et ont un type de retour différent, alors ce n’est pas un exemple de surcharge de méthode valide. Cela générera une erreur de compilation.

int somme(int, int)
double somme(int, int)

 
 

Exemple de surcharge de méthode en Java
public class Operation {
	
   public int somme(int x, int y) {
      return x + y;
   }
   public int somme(int x, int y, int z) {
      return x + y + z;
   }
   
   public static void main(String args[]) {
      Operation op = new Operation();
      System.out.println(op.somme(1,2));
      System.out.println(op.somme(1,2,3));
   }
}

 
Sortie:

3
6

 

Testez vos connaissance:
1. A quoi sert la surcharge de méthode dans Java?
Lorsque nous avons plusieurs méthodes avec le même nom mais des fonctionnalités différentes, cela s’appelle une surcharge de méthode.

 

2. Le code suivant est-il valide ou non?
int somme(int a, int b, float c)
int somme(int x, int y, float z)
Surcharge non valide, cela produit une erreur de compilation. Les listes d’arguments sont exactement les mêmes. Les deux méthodes ont le même nombre et les mêmes types de données.

 

 
 

3. Le code suivant est-il valide ou non?
int somme(int a, int b)
int somme(int x)
Cas valide de surcharge. Ici, le nombre d’arguments est différent.

 

4. Le code suivant est-il valide ou non?
int somme(int a, int b)
int somme(double x, double y)
Cas valide de surcharge. Ici, les types de données des arguments sont différents.

 

5. Le code suivant est-il valide ou non?
int somme(int a, int b)
double somme(int x, int y)
Erreur de compilation. Les listes d’arguments sont exactement les mêmes. Même si les types de méthodes de retour sont différents, ce n’est pas un cas valide. Étant donné que le type de méthode de retour n’a pas d’importance lors de la surcharge d’une méthode.

 

QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *