同一个类中包含了多个(两个或两个以上)方法的名称相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载(Overload),也可称该方法被重载了。
以下五个方法名称都为cooking,但是因为参数的参数的个数、顺序、类型各有不同,因此都属于方法的重载
package MyTest1;
public class MyTest8 {
public static void cooking(){ //没有参数的方法
System.out.println("没有参数");
}
public static void cooking(String name){ //重载show方法,一个字符串类型参数
System.out.println(name);
}
public static void cooking(int cooker){ //重载show方法,一个整数类型参数,并且和上面方法参数类型不同
System.out.println(cooker);
}
public static void cooking(String name, int age){//重载show方法,两个参数
System.out.println(name+age);
}
public static void cooking(int age, String name){ //重载show方法,两个参数,并且和上面方法参数顺序不同
System.out.println(name+age);
}
}
问: 如何区分调用的是哪个重载方法呢?
答: 当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。如:
public static void main(String args[]) {
MyTest8 myTest8=new MyTest8();
myTest8.cooking();
myTest8.cooking("字符串参数");
myTest8.cooking(3);
myTest8.cooking("字符串参数加整数+ "+4);
myTest8.cooking(5+" +字符串参数加整数倒过来");
}
运行结果:
判断方法重载的依据:
1、 必须是在同一个类中
2、 方法名相同
3、 方法参数的个数、顺序或类型不同。
4、 与方法的修饰符或返回值、形参变量名、方法体没有关系。
参考来自慕课网