1. Surcharge de méthode
Le nom de la méthode est le même, mais les paramètres sont différents, c'est une surcharge.
Les soi-disant paramètres différents ont deux points principaux: le premier est que le nombre de paramètres est différent, et le second est que les types de paramètres sont différents. Tant que l'un de ces deux aspects est différent, il peut constituer une surcharge de la méthode.
package cn.galc.test; public class testoLload {void max (int a, int b) {System.out.println (a> b? a: b); } / * * int max (int a, int b) {* return a> b? R: B; *} * / void max (float a, float b) {System.out.println (a> b? a: b); }}Ici, les deux méthodes max avec modificateur void ont le même nom, mais leurs types de paramètres sont différents, ils peuvent donc constituer une surcharge. La méthode int max (int a, int b) et la méthode void max (int a, int b) ne constituent pas la surcharge. Maintenant, ce sont deux méthodes avec des noms en double. La déclaration de deux méthodes avec des noms en double dans une classe n'est pas autorisée, et il y aura une erreur de compilation. Le nom de la méthode est le même et le type de paramètre est le même. Seule la valeur de retour est différente. Cela ne constitue pas une surcharge, car la méthode peut être appelée de cette manière. Il ne peut pas être utilisé lors de l'appel d'une méthode. Par conséquent, lors de l'appel de ces deux méthodes, le numéro entier est passé. Étant donné que les deux méthodes ont le même nom et le même type de paramètre, le compilateur ne peut pas distinguer la méthode à appeler. La raison du niveau profond de surcharge: tant que le compilateur de ces deux méthodes peut les distinguer et savoir lequel être appelé lors de l'appel, il n'y aura pas de confusion, ces deux méthodes constituent une surcharge.
Examinons les deux méthodes suivantes:
int max (int a, int b) {System.out.println ("la méthode int max (int a, int b) appelé"); retourner un> b? a: b;} int max (short a, short b) {System.out.println ("le int max (court a, court b) méthode appelée"); retourner un> b? a: b;} Ces deux méthodes peuvent également constituer une surcharge, car le compilateur le traitera comme un type INT dès qu'il voit un entier. Ainsi, lorsque vous passez un entier, le compilateur appelle d'abord la méthode max (int a, int b). Si vous souhaitez appeler la méthode max (court a, court b), vous devez l'écrire dans la méthode principale comme ceci:
public static void main (String [] args) {testoLload t = new testoLoadLoad (); T.max (3,4); // La méthode max (int a, int b) est appelée courte a = 3; court b = 4; t.max (a, b); // La méthode max (court a, court b) est appelée ici. }2. Surcharge des méthodes de construction
Comme les méthodes ordinaires, les constructeurs peuvent également être surchargés
package cn.galc.test; public class Person {int id; en âge; / ** * Constructeur * / Public Person () {id = 0; âge = 20; } / ** * Surcharge du constructeur un * @param i * / personne publique (int i) {id = i; âge = 20; } / ** * Surcharge du constructeur Two * @param i * @param j * / public Person (int i, int j) {id = i; âge = j; }}Ce qui précède est une explication détaillée de la surcharge des méthodes Java. J'espère que cela sera utile à l'apprentissage de tous.