【发布时间】:2014-11-21 10:22:46
【问题描述】:
在 Parent 类的以下程序中,Child 类实现 MyInterface。这就是 obj1 (Parent) instanceof MyInterface 为 false,而 obj2 (Child) instanceof MyInterace 为 true 的原因吗?
class InstanceofDemo {
public static void main(String[] args) {
Parent obj1 = new Parent();
Parent obj2 = new Child();
System.out.println("obj1 instanceof Parent: "
+ (obj1 instanceof Parent));
System.out.println("obj1 instanceof Child: "
+ (obj1 instanceof Child));
System.out.println("obj1 instanceof MyInterface: "
+ (obj1 instanceof MyInterface));
System.out.println("obj2 instanceof Parent: "
+ (obj2 instanceof Parent));
System.out.println("obj2 instanceof Child: "
+ (obj2 instanceof Child));
System.out.println("obj2 instanceof MyInterface: "
+ (obj2 instanceof MyInterface));
}
}
class Parent {}
class Child extends Parent implements MyInterface {}
interface MyInterface {}
给出以下输出:
obj1 instanceof Parent: true
obj1 instanceof Child: false
obj1 instanceof MyInterface: false
obj2 instanceof Parent: true
obj2 instanceof Child: true
obj2 instanceof MyInterface: true
【问题讨论】:
-
是的,这就是原因。如果 Parent 没有实现 MyInterface,instanceof 语句将返回 false。
标签: java