Java Reference Assigned

时间:2013-08-09 07:29:35

标签: scjp

class ClassA {}

class ClassB extends ClassA {}

class ClassC extends ClassA {}

ClassA p0 = new ClassA();
ClassB p1 = new ClassB();
ClassC p2 = new ClassC();
ClassA p3 = new ClassB();
ClassA p4 = new ClassC();

 p0 = p1 works
 But, p1 = p2 fails compilation....

当两个语句中的层次结构相同时,无法弄清楚为什么会出现这种情况? A - > B - > ç

1 个答案:

答案 0 :(得分:1)

在您的层次结构中A-> B-> C不成立。它是A-> B,A-> C. C不是B的子类型。