方法重载是指在同一个类中,定义了多个同名方法,但每个方法的参数类型或者是参数个数不同就是方法重载。
方法签名是由:方法名称 + 参数类型 + 参数个数组成的一个唯一值,这个唯一值就是方法签名,而 JVM(Java 虚拟机)就是通过这个方法签名来决定调用哪个方法的。
从方法签名的组成规则我们可以看出,方法的返回类型不是方法签名的组成部分,所以当同一个类中出现了多个方法名和参数相同,但返回值类型不同的方法时,JVM 就没办法通过方法签名来判断到底要调用哪个方法了。
方法重载的经典使用场景是 String 类型的 valueOf 方法,valueOf 方法重载有 9 种实现。它可以将数组、对象和基础数据类型转换成字符串类型。
方法重载匹配原则
方法重载的调用顺序是有前后之分的,比如以下代码:
public class OverloadExample {
public static void main(String[] args) {
OverloadExample example = new OverloadExample();
example.method(12);
}
public void method(int num) {
System.out.println("调用 int 方法");
}
public void method(long num) {
System.out.println("调用 long 方法");
}
public void method(Integer num) {
System.out.println("调用 Integer