在类Parent中的以下程序中,类Child实现了MyInterface。这就是为什么obj1(Parent)instanceof MyInterface是假的,而obj2(Child)instanceof MyInterace是真的吗?
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
答案 0 :(得分:0)
因为只有Child
类实现MyInterface
,所以如果您希望Parent
类的实例成为您的MyInterface
接口的实例,则必须实现{您MyInterface
课程中的{1}}。像这样:
Parent
这将给出这个输出:
class Parent implements MyInterface{}
class Child extends Parent {}
interface MyInterface {}
答案 1 :(得分:0)
就现实世界的物体而言,它非常简单。使用给定的java对象映射以下示例。 我有以下类和接口:
class HumanBeing{}
interface Teachable{}
class Teacher extends HumanBeing implements Teachable{}
真实世界示例:
上面的类和接口定义可以解释如下:
成为一名教师意味着必须成为一名HumanBeing。 现在说例如Gopal只是“人类”而Varma是“老师”
HumanBeing gopal = new HumanBeing();
HumanBeing varma = new Teacher();
现在评估以下问题,您将很容易理解这个概念:
是Gopal老师? NO
是Varma Human Being?是的,因为他是老师(所有老师都是人)