IT Notes‎ > ‎Java‎ > ‎Java Language‎ > ‎Java Language Tips‎ > ‎

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

有点搞不清楚为什么,姑且了解这么一个行为吧。当有两个方法都适合调用时,系统会调用参数类型较小的一个方法。
为什么呢?我现在也不知道。

问题来源:这里
ċ
What026.java
(0k)
Iridium Cao,
Jul 22, 2008, 5:22 AM
Comments