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!