我在以下prt(null)
收到了编译错误:
public class Abc {
public static void prt(String b)
{
System.out.println("I m static Method with String");
}
public static void prt(Abc n)
{
System.out.println("I m static Method with Object");
}
public static void main(String[] args) {
prt(null);
}
}
但是这个课很好:
public class Abc {
public static void prt(String b)
{
System.out.println("I m static Method with String");
}
public static void prt(Object n)
{
System.out.println("I m static Method with Object");
}
public static void main(String[] args) {
prt(null);
}
}
请帮助我理解String,任何类对象和Object类对象中的空值。
答案 0 :(得分:2)
您应该仔细阅读完整的编译器消息。它可能会抱怨调用prt(null)是不明确的。 实际上你应该对它进行类型转换: prt((String)null)或 prt((Abc)null)让编译器知道要调用的parameter overloaded方法。
引用探索:
它将调用参数类型为其子类的方法 另一种方法的参数类型。谨防!参数类型是 由声明的对象类型定义,而不是其实例化类型。