结论:在静态分派的过程中,重载方法的匹配优先级顺序为
①直接匹配到的类型 > ②自动类型转换 > ③自动装箱 > ④匹配接口实现 > ⑤匹配父类 > ⑥匹配变长参数
代码清单如下:
package com.madg.jvm;
import java.io.Serializable;
public class Reload {
public static void say(char arg)
{
System.out.println("char");
}
public static void say(int arg)
{
System.out.println("int");
}
public static void say(long arg)
{
System.out.println("long");
}
public static void say(Character arg)
{
System.out.println("Character");
}
public static void say(Serializable arg)
{
System.out.println("Serializable");
}
public static void say(Object arg)
{
System.out.println("Object");
}
public static void say(char... arg)
{
System.out.println("char...");
}
public static void main(String[] args)
{
say('a');
}
}
读者可以逐级注释掉被匹配到的 方法查看下级匹配。
输出顺序为:
char
int
long
Character
Serializable
Object
char...