方法重载(overload)
多个方法名称一样,参数列表不一样。
关于方法重载存在的必要性我这里打个例子
package demo_1;
public class HelloWorld {
public static void main(String[] args) {
}
public static int addtwo(int a, int b) {
return a+b;
}
public static int addthree(int a, int b,int c) {
return a+b+c;
}
public static int addfour(int a, int b,int c,int d) {
return a+b+c+d;
}
}
上述Java代码中三个方法,addtwo,addthree,addfour实现的功能都是将传入的参数相加,然后返回结果。
实现一样的功能,但是定义三个方法的行为就显得鸡肋而没有必要了。
将代码改写成如下的形式就是方法的重载。
package demo_1;
public class HelloWorld {
public static void main(String[] args) {
}
public static int add(int a, int b) {
return a+b;
}
public static int add(int a, int b,int c) {
return a+b+c;
}
public static int add(int a, int b,int c,int d) {
return a+b+c+d;
}
}
最后我们回到方法重载的定义。
方法重载(overload)
多个方法名称一样,参数列表不一样。
既然只要求名称一样,那么除了上述的参数个数不同,如下方法的参数类型不同的形式,也可以算作是方法重载。
package demo_1;
public class HelloWorld {
public static void main(String[] args) {
System.out.println(add(2.4,1.2));
}
public static int add(int a, int b) {
return a+b;
}
public static int add(double a,double b){
return (int)(a+b);
}
}
既然参数返回值类型不同也是方法重载的形式,那么可想而知,不同类型参数处于不同位置就也是重载的一种形态噢。
代码如下所示
package demo_1;
public class HelloWorld {
public static void main(String[] args) {
}
public static int add(double a,int b){
return (int)(a+b);
}
public static int add(int a,double b){
return (int)(a+b);
}
}