在同一个类中,有两个重载的方法
public void overload(Integer i){
Number num = (Number)i;
overload(num);
System.out.println("overloadIngeger");
}
public void overload(Number num) {
System.out.println("overloadNumber");
}
第一个方法的参数为Number类型,第二个方法的参数是Integer类型
Number类继承Integer类,在第一个方法里面调用overload(Number num)方法,传递的参数为Number类型
运行后,输出的结果为overloadNumber,而不是overloadIngeger
说明jvm在遍历重载的方法时,会优先运行小的参数类型的方法