Maison >Java >javaDidacticiel >exemple de surcharge de méthode Java
Qu'est-ce que la surcharge de méthode ?
La surcharge de méthodes est un moyen de gérer différents types de données de manière unifiée.
Comment constituer une surcharge de méthode ?
Les noms de méthodes sont les mêmes mais les paramètres formels sont différents. La différence des paramètres formels est exprimée en : 1) Le nombre de paramètres formels est différent 2) Le type de paramètres formels est différent 3) L'ordre des paramètres formels est différent
Notes
1. Si les valeurs de retour des deux méthodes sont différentes, mais tout le reste est pareil. Cela ne constitue pas une surcharge de méthode. Une erreur sera signalée lors de la compilation :
Exemple de code (incorrect) : Test.java
/*返回值的不同并不能构成方法的重载*/ public class Test { public static void main(String[] args) { } } class A { public void f() { //返回值为 void } public int f() { //返回值为 int, 其他和上面的f()方法是一样的 return 1; } }
Message d'erreur :
Test.java:12: error: method f() is already defined in class A public int f() { ^ 1 error 2. 构造方法和普通方法一样, 也可以方法重载。
Exemple de code (correct) : Test .java
/* 方法的重载 * 输出结果: * public A() {} 这个构造方法被调用了 * public A(int i) {} 这个构造方法被调用了 * public void f() {} 这个构造方法被调用了 * public void f(int i) {} 这个构造方法被调用了 */ public class Test { public static void main(String[] args) { A aa1 = new A(); //调用9行那个方法 A aa2 = new A(1); //调用13行那个方法 aa1.f(); //调用17行那个方法 aa2.f(1); //调用21行那个方法 } } class A { public A() { //9行 System.out.printf("public A() {} 这个构造方法被调用了\n"); } public A(int i) { //13行 System.out.printf("public A(int i) {} 这个构造方法被调用了\n"); } public void f() { //17行 System.out.printf("public void f() {} 这个构造方法被调用了\n"); } public void f(int i) { //21行 System.out.printf("public void f(int i) {} 这个构造方法被调用了\n"); } }
Pour plus d'exemples de surcharge de méthodes Java et d'articles connexes, veuillez faire attention au site Web PHP chinois !