【发布时间】:2014-11-05 07:26:00
【问题描述】:
考虑到下面的代码,我不明白为什么"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)); -
C和D是同一继承层次结构的叶子,因此彼此不相关 - 在编译时可以检查。 -
谢谢。好吧,这是一个学校练习,我应该解释错误发生的原因。
标签: java inheritance interface operator-keyword instanceof