Java方法重载(小白必读)
为了体现设计的优雅性,Java 支持方法的重载(Override)。
所谓方法重载,是指在一个类中可以定义多个方法名相同但参数不同的方法。在调用时,会根据不同的参数自动匹配对应的方法。
重载的方法是完全不同的方法,只是方法名相同。
参数不同又分为两种情况:
另外,值得注意的是,只有返回值不同不构成方法的重载,如 int a(String str){} 与 void a(String str){} 不构成方法的重载。只是形参的名称不同,也不是方法的重载,如 int func(String str){} 与 int func(String s){} 不构成方法的重载。
构造方法的重载和本节讨论的非构造方法的重载基本相似,构造方法的名称就是类的名称。为了使系统能区分不同的构造方法,多个构造方法的参数列表必须不同。
【实例】使用方法的重载实现不同的功能。
所谓方法重载,是指在一个类中可以定义多个方法名相同但参数不同的方法。在调用时,会根据不同的参数自动匹配对应的方法。
重载的方法是完全不同的方法,只是方法名相同。
参数不同又分为两种情况:
- 参数个数不同;
- 参数个数相同,但参数列表中对应的参数的数据类型不同。
另外,值得注意的是,只有返回值不同不构成方法的重载,如 int a(String str){} 与 void a(String str){} 不构成方法的重载。只是形参的名称不同,也不是方法的重载,如 int func(String str){} 与 int func(String s){} 不构成方法的重载。
构造方法的重载和本节讨论的非构造方法的重载基本相似,构造方法的名称就是类的名称。为了使系统能区分不同的构造方法,多个构造方法的参数列表必须不同。
【实例】使用方法的重载实现不同的功能。
public class Test {
// 下面定义两个speak()方法,这两个方法的参数列表是不同的
public void speak(int i) {
System.out.println("重载的方法,输出整数:" + i);
}
public void speak(String str) {
System.out.println("重载的方法,输出字符串:" + str);
}
public static void main(String[] args) {
Test overload = new Test();
// 调用speak()方法,实参是整型数据
overload.speak(20);
// 调用speak()方法,实参是字符串
overload.speak("hello world!");
}
}
运行结果为:
重载的方法,输出整数:20
重载的方法,输出字符串:hello world!
ICP备案:
公安联网备案: