public class C
{
public void foo (D d)
{
System.out.println("cd");
}
}
public class D extends C
{
public void foo(C c)
{
System.out.println("dc");
}
public void foo(D d)
{
System.out.println("dd");
}
}
public class Driver
{
public static void main (String [] args)
{
C cd = new D();
D dd = (D)cd;
dd.foo(dd);
}
}
为什么它工作且对象不为null,我会认为cd和dd因为默认构造函数而为null? 这是一个“空”对象,只在堆空间中有一个地址吗? 我需要进一步解释,谢谢。