Java 方法重载 (Overload)
为什么要用方法重载
- 对于功能类似的方法来说,因为参数列表不一样,如果定义不同名称的方法,太麻烦且难以记忆。
- 为了解决这个问题,引入方法的重载。
重载的定义
多个方法的名称一样,但参数列表不一样。
实例
不使用方法重载
-
定义三个功能类似的方法
public class TestOverload { public static int sumOne(int a) { return a; } public static int sumTwo(int a, int b) { return a + b; } public static int sumThree(int a, int b, int c) { return a + b + c; } }
-
使用这三个方法
public static void main(String[] args) { System.out.println(sumOne(1)); // 输出 1 System.out.println(sumTwo(1, 2)); // 输出 3 System.out.println(sumThree(1, 2, 3)); // 输出 6 }
使用方法重载
-
定义三个功能类似的方法
public class TestOverload { public static int sum(int a) { return a; } public static int sum(int a, int b) { return a + b; } public static int sum(int a, int b, int c) { return a + b + c; } }
-
使用这三个方法
public static void main(String[] args) { System.out.println(sum(1)); // 输出 1 System.out.println(sum(1, 2)); // 输出 3 System.out.println(sum(1, 2, 3)); // 输出 6 }
注意事项
方法重载的相关因素
参数个数不同
public static int sum(int a) {
return a;
}
public static int sum(int a, int b) {
return a + b;
}
参数类型不同
public static int sum(int a, int b) {
return a + b;
}
public static int sum(long a, long b) {
return (int) (a + b);
}
参数的多类型顺序不同
public static int sum(int a, double b) {
return (int) (a + b);
}
public static int sum(double a, int b) {
return (int) (a + b);
}
方法重载的不相关因素
与参数的名称无关
public static int sum(int a, int b) {
return a + b;
}
public static int sum(int x, int y) {
return x + y;
}
与方法的返回值无关
public static double sum(int a, int b) {
return a + b;
}
public static int sum(int a, int b) {
return a + b;
}
总结
如果有功能类似的方法,可以使用方法重载,这样不仅容易记忆,调用起来也方便。
本文来自博客园,作者:LeeHua,转载请注明原文链接:https://www.cnblogs.com/liyihua/p/11811343.html