方法重载和null关键字

时间:2013-08-30 15:29:52

标签: java

如果有人能在下面解释,那将是很棒的。为什么在下面的示例中调用print(String s)方法而未调用print(Object o)

package com.example;

public class DemoTest {

    public void print(Object o){
        System.out.println("Object");
    }
    public void print(String s){
        System.out.println("String");
    }
    public static void main(String[] args) {
        DemoTest dt = new DemoTest();
        dt.print(null);

    }
}

1 个答案:

答案 0 :(得分:1)

取自Strange Java null behavior in Method Overloading

“那是因为String类从Object扩展,因此更具体到Object。因此,编译器决定调用该方法。记住,编译器总是选择最具体的方法来调用。”