问: 什么是方法的重载呢?
答: 如果同一个类中包含了两个或两个以上方法名相同、方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了。如下所示 4 个方法名称都为 show ,但方法的参数有所不同,因此都属于方法的重载:
public void print() {
System.out.println("无参的print方法");
}
public void print(String name) {
System.out.println("带有一个字符串参数的print方法,参数值为:" + name);
}
public void print(int age) {
System.out.println("带有一个整型参数的print方法,参数值为:" + age);
}
问: 如何区分调用的是哪个重载方法呢?
答: 当调用被重载的方法时, Java 会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。如:
public static void main(String[] args) {
// 创建对象
HelloWorld hello = new HelloWorld();
// 调用无参的方法
hello.print();
// 调用带有一个字符串参数的方法
hello.print("imooc");
// 调用带有一个整型参数的方法
hello.print(18);
}
判断方法重载的依据:
- 必须是在同一个类中
- 方法名相同
- 方法参数的个数、顺序或类型不同
- 与方法的修饰符或返回值没有关系
参考链接:https://www.imooc.com/code/1582