Introduction à la surcharge en Java

Java est un langage de programmation orienté objet et suit les concepts de base des POO. La surcharge est l'un des concepts importants de Java. La surcharge permet différentes méthodes ayant le même nom dans une classe mais avec des signatures différentes. La signature comprend le nombre de paramètres, le type de données des paramètres et la séquence de paramètres passés dans la méthode. En Java, la méthode et les constructeurs peuvent être surchargés. La surcharge des méthodes est effectuée au moment de la compilation et, par conséquent, elle est connue lors du polymorphisme au moment de la compilation. La surcharge des méthodes dans une classe est effectuée pour augmenter la lisibilité des programmes afin que le programmeur puisse écrire une implémentation améliorée de n'importe quelle méthode pour différents scénarios.

Prenons un scénario dans lequel le programmeur souhaite connaître le volume de diverses figures géométriques comme le cube, le cylindre et le prisme rectangulaire. Comme trois d'entre eux ont une formule différente pour trouver le volume et ont un nombre différent de paramètres. Le volume du cube n'aura besoin que d'un paramètre, le cylindre en prendra deux et le prisme rectangulaire prendra trois paramètres. Mais le but principal est de trouver uniquement le volume des chiffres. Nous pouvons donc créer des méthodes de volume distinctes pour différentes figures mais avec le même nom. De cette façon, la surcharge de méthode est utilisée dans des scénarios pratiques.

Comment fonctionne la surcharge en Java?

Le fonctionnement de la surcharge de méthode est expliqué avec un exemple:

Code:

class Main(
int volume(int side)
(
return side * side * side;
)
int volume(int length, int breadth, int height)
(
return length*breadth*height;
)
double volume(int radius, int height)
( return 3.14 * (radius * radius)* height / 3;
)
public static void main(String() args)
(
Main oe = new Main();
System.out.println("Volume of Cube " +oe.volume(10));
System.out.println("Volume of Rectangular prism " +oe.volume(10, 12, 30));
System.out.println("Volume of Cone "+oe.volume(5, 10));
) )

Production:

Explication du code ci-dessus: Dans l'exemple ci-dessus, nous devons trouver le volume de 3 figures géométriques, nous avons donc créé 3 méthodes surchargées distinctes avec le même nom que `` volume '' mais toutes les méthodes ont des nombres d'arguments différents. Donc, dans la méthode principale, lorsque le one.volume (10) est exécuté, la méthode du volume ayant un seul paramètre, c'est-à-dire le volume int (côté int), est appelée. De même pour les autres méthodes de volume, en fonction du nombre d'arguments, différentes méthodes sont appelées et traitées.

Dans cet exemple, les méthodes sont surchargées sur la base du nombre d'arguments mais elles peuvent également être surchargées sur la base du type de données des paramètres et de la séquence de paramètres et donc appelées uniquement en fonction de cela.

Types de surcharge en Java

Il existe essentiellement 3 méthodes de surcharge de méthode en Java:

1. Nombre de paramètres

Les méthodes Java peuvent être surchargées par le nombre de paramètres transmis dans la méthode. Par exemple, si la méthode 1 de volume a 2 paramètres et une autre méthode a 3 paramètres, alors elle relève de la surcharge en fonction du nombre de paramètres.

Code:

class Multiplication
(
int mult(int a, int b) // method mult having 2 parameters
(
return a*b;
)
//Method Overloading on number of parameters
int mult(int a, int b, int c) // method mult having 3 parameters
(
return a*b*c;
)
)
class Main
(
public static void main(String() args)
(
Multiplication M = new Multiplication();
System.out.println(M.mult(10, 9));
System.out.println(M.mult(10, 9, 8));
)
)

Production:

2. Type de données des paramètres

Le type de données des paramètres transmis dans la méthode est très important et, par conséquent, les méthodes peuvent être considérées comme surchargées si 2 ou les méthodes ont le même nom avec le même nombre d'arguments ou un nombre différent mais différents types de données de paramètres dans les différentes méthodes.

Code:

class Multiplication
(
int mult(int a, int b) // method mult having 2 parameters
(
return a*b;
)
//Method Overloading on datatype of parameters
double mult(double a, double b) // method mult overloaded
(
return a*b;
)
)
class Main
(
public static void main(String() args)
(
Multiplication M = new Multiplication();
System.out.println(M.mult(10, 9));
System.out.println(M.mult(10.5, 9.8));
)
)

Production:

3. Séquence de paramètres

La surcharge de méthode peut également être effectuée en modifiant la séquence de paramètres de 2 méthodes ou plus surchargées. Par exemple, si les paramètres de la méthode 1 sont (chaîne x, caractère y) et que l'autre méthode est (caractère x, chaîne y) mais que les deux portent le même nom, les 2 méthodes ci-dessus sont considérées comme surchargées par une séquence différente de paramètres.

Code:

class Employee
(
void details(String name, char rank) // method details having 2 parameters
(
System.out.println("Employee name is "+name);
System.out.println("Employee ranking is "+rank);
) //Method Overloading on sequence of parameters
void details(char rank, String name) // method details overloaded
(
System.out.println("Employee name is "+name);
System.out.println("Employee ranking is "+rank);
)
)
class Main
(
public static void main(String() args)
( Employee emp = new Employee();
emp.details("Rajesh", 'A'); // calls the first method (details(String, char))
emp.details("Ram", 'B'); // calls the second method (details(char, String))
)
)

Production:

Explication du code ci-dessus: Dans l'exemple ci-dessus, les deux méthodes de «détails» sont surchargées sur la base de la séquence if des paramètres. Lorsque l'instruction emp.details ('Rajesh', 'A') est appelée, la méthode ayant les arguments dans l'ordre (String, char), c'est-à-dire les détails vides (String name, char rank) est appelée et traitée.

Règles de surcharge en Java

Voici les règles à retenir en cas de surcharge java:

  • La première règle de surcharge des méthodes est que les méthodes doivent avoir le même nom dans une seule classe.
  • Deux méthodes ou plus dans une classe peuvent être surchargées sur la base de différentes signatures et la signature inclut le nombre de paramètres, les types de données de paramètres, la séquence de paramètres comme expliqué ci-dessus.
  • Le type de retour d'une méthode ne fait pas partie de la signature, donc la surcharge ne peut jamais être effectuée sur la base du type de retour et si cela est fait, cela crée l'erreur de compilation.

Conclusion

La surcharge est l'un des concepts importants de Java et peut être effectuée pour les méthodes et les constructeurs. Il y a quelques règles de surcharge qui doivent être gardées à l'esprit avant de l'implémenter dans la programmation.

Articles recommandés

Ceci est un guide de surcharge en Java. Nous discutons ici de certaines règles de surcharge qui doivent être prises en compte avant l'implémentation de concepts importants en Java, les méthodes et les constructeurs. Vous pouvez également consulter nos autres articles connexes pour en savoir plus -

  1. Surcharge en C ++
  2. Outils de déploiement Java
  3. Héritage en Java
  4. Surcharge en PHP
  5. Polymorphisme en Java
  6. Héritage en PHP