0
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 --> C

4

1 に答える 1

1

あなたの階層では、A->B->C は真ではありません。A→B、A→Cです。また、C は B のサブタイプではありません。

于 2013-08-09T07:35:20.170 に答える