Weirdness of Method Overloading
如下代码(附件中同):
public class What026 {
public static void main(String[] args) {
What026 w = new What026();
w.hello((Object) null);
w.hello(null);
}
void hello(Object o) {
System.out.println("object");
}
void hello(String s) {
System.out.println("string");
}
}
执行出来的结果如下:
object
string
有点搞不清楚为什么,姑且了解这么一个行为吧。当有两个方法都适合调用时,系统会调用参数类型较小的一个方法。
为什么呢?我现在也不知道。
问题来源:这里