【问题标题】:Method overloading and null keyword [duplicate]方法重载和空关键字
【发布时间】:2013-08-30 15:29:52
【问题描述】:

如果有人能在下面解释,那就太好了。为什么在下面的示例中调用了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);

    }
}

【问题讨论】:

  • 只是一个后续,但如果有一个 print(Integer i) 方法怎么办。那么会选择什么呢?或者这是一个错误?

标签: java


【解决方案1】:

取自Strange Java null behavior in Method Overloading

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

【讨论】:

  • 你可以把它链接起来......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多