【发布时间】:2010-10-09 19:04:45
【问题描述】:
在下面的代码中,x 的类型是 I(虽然 x 也实现了 J,但在编译时不知道)那么为什么 (1) 处的代码不会导致编译时错误。 因为在编译时只考虑引用的类型。
public class MyClass {
public static void main(String[] args) {
I x = new D();
if (x instanceof J) //(1)
System.out.println("J");
}
}
interface I {}
interface J {}
class C implements I {}
class D extends C implements J {}
【问题讨论】:
-
附注 - 请不要忘记为语言添加标签。我为你添加了“java”。
标签: java instanceof