考虑以下代码,我不明白为什么
"System.out.println( c2 instanceof D);"
会导致“非法编译时错误”,而不是返回“false”?非常感谢您的帮助!interface I { }
class A { int x = 1;}
class B extends A implements I { int y = 2;}
class C extends B { }
class D extends B{ }
class E implements I { }
C c2 = new C();`
System.out.println("" + (c2 instanceof D));
- EpicPandaForceC
和D
是同一继承层次结构的叶子节点,因此它们彼此之间没有关联 - 这可以在编译时进行检查。 - Smutje