1、方法重载的定义
Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载
2、下面的三个方法互为重载关系
1 public static int add(int x,int y) {逻辑} //两个整数加法 2 public static int add(int x,int y,int z) {逻辑} //三个整数加法 3 public static int add(double x,double y) {逻辑} //两个小数加法
3、方法重载的例子
1 public class MethodDemo03 { 2 public static void main(String[] args) { 3 // 下面是针对求和方法的调用 4 int sum1 = add(1, 2); 5 int sum2 = add(1, 2, 3); 6 double sum3 = add(1.2, 2.3); 7 // 下面的代码是打印求和的结果 8 System.out.println("sum1=" + sum1); 9 System.out.println("sum2=" + sum2); 10 System.out.println("sum3=" + sum3); 11 } 12 13 // 下面的方法实现了两个整数相加 14 public static int add(int x, int y) { 15 return x + y; 16 } 17 // 下面的方法实现了三个整数相加 18 public static int add(int x, int y, int z) { 19 return x + y + z; 20 } 21 // 下面的方法实现了两个小数相加 22 public static double add(double x, double y) { 23 return x + y; 24 } 25 }
上述代码中定义了三个同名的add()方法,它们的参数个数或类型不同,从而形成了方法的重载。在main()方法中调用add()方法时,通过传入不同的参数便可以确定调用哪个重载的方法,如add(1,2)调用的是两个整数求和的方法
4、方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数列表(参数个数或参数类型)不相同。
5、重载的注意事项
(1)重载方法参数必须不同
参数个数不同,如method(int x)与method(int x,int y)不同
参数类型不同,如method(int x)与method(double x)不同g
参数顺序不同,如method(int x,double y)与method(double x,int y)不同
(2)重载只与方法名与参数类型相关与返回值无关
如void method(int x)与int method(int y)不是方法重载,不能同时存在
(3)重载与具体的变量标识符无关
如method(int x)与method(int y)不是方法重载,不能同时存在