基本数据类型不属于Object类型,应该是发生了向上类型的转换!int-->Integer所以才能使用了第二种方法!作者: 袁艳超 时间: 2012-9-3 18:19
重载使得java的类可以有具有多个相同方法名的方法。编译器可以通过方法的参数的类型和个数来区分他们。而返回值和异常是不能作为区别标志的。
输出String String是遵循了方法重载中准确性的原则,你可以把"123"看成String,也可以看成Object,
但是从层次上看Object处在更上层,String是从Object继续过来的,调用testFun(String s)将更准确。
假如代码再加一个重载的方法,传入的参数变为神奇的null看看就知道啦:
public class Test {
public static void main(String[] args) {
Test test = new Test();
test.testFun(null);
}
public void testFun(String str) {
System.out.println("String String");
}
public void testFun(Object o) {
System.out.println("Object void");
}
public void testFun(StringBuffer sb) {
System.out.println("StringBuffer");
}
}