【问题标题】:executing sequence of static methods in java [duplicate]在java中执行静态方法序列[重复]
【发布时间】:2014-12-10 18:00:30
【问题描述】:

我在下面给出了一个java中的虚拟程序-

public class DummyTest {
    public static void main(String[] args) {
        hungry(null);
    }

     public static void hungry(Object o){
        System.out.println("object");
    }

    public static void hungry(String s){
        System.out.println("string");
    }
}

这个程序返回打印string。请告诉我为什么它打印string而不是object的概念。

【问题讨论】:

  • 这与static无关,同样的道理适用于任何方法。

标签: java static-methods


【解决方案1】:

这就是方法重载的工作原理。当一个候选的参数比另一个的参数更具体(StringObject 更具体)时,选择参数更具体的方法。

请注意,如果您添加第三个hungry 方法,其引用类型的参数与String 无关(例如Integer),代码将不会通过编译,因为编译器不会在hungry(String)hungry(Integer)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-03
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多