「小马哥每日一问」2019.07.08 期

mercyblitz
  • 14.5k

问题描述

public class Confusing {
    public Confusing(Object o) {
        System.out.println("Object");
    }
    public Confusing(double[] dArray) {
        System.out.println("double array");
    }
    public static void main(String args[]) {
        new Confusing(null);
    }
}

以上程序输出内容是?

(a) Object
(b) double array
(c) 以上都不是

注:每期的「小马哥每日一问」将累计在「小马哥技术周报」 直播中解答
回复
阅读 2.2k
4 个回答

这里应该是most specific 原则吧,所有double[] 类型参数都可以是Object,但不是所有Object都是double[]。所以在这里Confusing(double[] dArray) 更加 specific。选b

最后给小马哥打call。B站上有关注小马哥的技术周报。

a_nuo
  • 1
新手上路,请多包涵

记得应该是当多个方法签名都符合时,取相对具体的(子类的)一个

选择b double array

留下电话,大家给你打call

你知道吗?

宣传栏