构造函数Confusing(Object)不明确

时间:2015-12-13 17:42:24

标签: java

我需要一些帮助来理解这个概念。请参考以下示例以及代码如何显示不同的输出?

场景-1:如果我使用public Confusing(Object o){此方法签名然后输出是对象,但如果我使用public Confusing(StringBuffer sb){字符串缓冲区输出正在打印?

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

场景-2:如果我使用了public Confusing(Object o){这个方法签名然后输出是对象,但是如果我使用public Confusing(double[] dArray){那么为什么输出是Double Array?

    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);
    }
}

场景-3 如果我使用以下代码,那么为什么我会收到以下错误? 我们如何解决此错误?

The constructor Confusing(Object) is ambiguous

public class Confusing {
    public Confusing(Object o){
        System.out.println("Object");
    }
    /*public Confusing(double[] dArray){
        System.out.println("Double Array");
    }*/
    public Confusing(String s){
        System.out.println("String");
    }
    public Confusing(StringBuffer sb){
        System.out.println("String Buffer");
    }
    public static void main(String[] args) {
        new Confusing(null);
    }
}

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The constructor Confusing(Object) is ambiguous

请帮助我理解这个概念。

0 个答案:

没有答案