我知道原始数据类型的自动类型提升概念。但是在引用数据类型的情况下,我有下面的代码可以完美运行。
public class Test4 {
void set(Object o) {
System.out.println("Inside Object");
}
void set(double[] a) {
System.out.println("Array");
}
public static void main(String[] args) {
new Test4().set(null);
}
}
这给出了输出数组。
但是如果代替 Object o,如果我们有任何其他类,那么这将显示编译时错误该方法对于类型 Test4 不明确
下面的代码给出了编译时错误
public class Test4 {
/*void set(Object o) {
System.out.println("Inside Object");
}*/
void set(String s) {
System.out.println("String");
}
void set(double[] a) {
System.out.println("Array");
}
public static void main(String[] args) {
new Test4().set(null);
}
}
据我所知,每个引用数据类型(类、接口和数组)的默认值为 null。
那么为什么上面的代码在 Object o 的情况下有效。
提前致谢