Surcharge de méthode Java (avec des exemples)

Dans cet article, vous découvrirez la surcharge de méthodes et comment vous pouvez y parvenir en Java à l'aide d'exemples.

En Java, deux méthodes ou plus peuvent avoir le même nom si elles diffèrent par leurs paramètres (nombre de paramètres différent, types de paramètres différents, ou les deux). Ces méthodes sont appelées méthodes surchargées et cette fonctionnalité est appelée surcharge de méthode. Par exemple:

 void func () (…) void func (int a) (…) float func (double a) (…) float func (int a, float b) (…)

Ici, la func()méthode est surchargée. Ces méthodes ont le même nom mais acceptent des arguments différents.

Remarque : les types de retour des méthodes ci-dessus ne sont pas les mêmes. C'est parce que la surcharge de méthode n'est pas associée aux types de retour. Les méthodes surchargées peuvent avoir des types de retour identiques ou différents, mais elles doivent avoir des paramètres différents.

Pourquoi une surcharge de méthode?

Supposons que vous deviez effectuer l'addition de nombres donnés mais qu'il puisse y avoir n'importe quel nombre d'arguments (disons 2 ou 3 arguments pour la simplicité).

Afin d'accomplir la tâche, vous pouvez créer deux méthodes sum2num(int, int)et respectivement sum3num(int, int, int)pour deux et trois paramètres. Cependant, d'autres programmeurs, ainsi que vous dans le futur, peuvent être confus car le comportement des deux méthodes est le même mais ils diffèrent par leur nom.

La meilleure façon d'accomplir cette tâche consiste à surcharger les méthodes. Et, en fonction de l'argument passé, l'une des méthodes surchargées est appelée. Cela contribue à augmenter la lisibilité du programme.

Comment effectuer une surcharge de méthode en Java?

Voici différentes façons d'effectuer une surcharge de méthode:

1. Surcharge en modifiant le nombre d'arguments

 class MethodOverloading ( private static void display(int a)( System.out.println("Arguments: " + a); ) private static void display(int a, int b)( System.out.println("Arguments: " + a + " and " + b); ) public static void main(String() args) ( display(1); display(1, 4); ) )

Sortie :

 Arguments: 1 Arguments: 1 et 4

2. En modifiant le type de données des paramètres

 class MethodOverloading ( // this method accepts int private static void display(int a)( System.out.println("Got Integer data."); ) // this method accepts String object private static void display(String a)( System.out.println("Got String object."); ) public static void main(String() args) ( display(1); display("Hello"); ) ) 

Sortie :

Vous avez des données Integer. Obtenu un objet String.

Ici, les deux méthodes surchargées acceptent un argument. Cependant, on accepte l'argument de type inttandis que l'autre accepte l' Stringobjet.

Regardons un exemple réel:

 class HelperService ( private String formatNumber(int value) ( return String.format("%d", value); ) private String formatNumber(double value) ( return String.format("%.3f", value); ) private String formatNumber(String value) ( return String.format("%.2f", Double.parseDouble(value)); ) public static void main(String() args) ( HelperService hs = new HelperService(); System.out.println(hs.formatNumber(500)); System.out.println(hs.formatNumber(89.9934)); System.out.println(hs.formatNumber("550")); ) )

Lorsque vous exécutez le programme, la sortie sera:

 500 89,993 550,00

Remarque : en Java, vous pouvez également surcharger les constructeurs de la même manière que les méthodes.

Lecture recommandée: surcharge du constructeur Java

Les points importants

  • Deux méthodes ou plus peuvent avoir le même nom dans la même classe si elles acceptent des arguments différents. Cette fonctionnalité est connue sous le nom de surcharge de méthode.
  • La surcharge de méthode est obtenue soit par:
    • changer le nombre d'arguments.
    • ou en modifiant le type de données des arguments.
  • Ce n'est pas une surcharge de méthode si nous modifions uniquement le type de retour des méthodes. Il doit y avoir des différences dans le nombre de paramètres.

Articles intéressants...