instanceof是Java中的关键字,它的作用是判断其左边对象是否为其右边类的实例。
boolean result = object instanceof class;
//result :boolean类型。
//object :必选项。任意对象表达式。
//class:必选项。任意已定义的对象类。如果该object 是该class的一个实例,那么返回true。如果该object 不是该class的一个实例,或者object是null,则返回false。
案例:
共有的接口或类
interface A {
}
class B implements A {
}
class C extends B {
}public class InDemo01 {
public static void main(String[] args) {
A a = null;
B b = null;
boolean res;
System.out.println("对象为null时: ------------------");
res = a instanceof A;
System.out.println("a instanceof A: " + res);
res = b instanceof B;
System.out.println("b instanceof B: " + res);
}
}运行结果:

public class InDemo02 {
public static void main(String[] args) {
System.out.println("/n对象不为空时: ------------------");
A a = new B();
B b = new B();
Boolean res = a instanceof A;
System.out.println("a instanceof A: " + res);
res = a instanceof B;
System.out.println("a instanceof B: " + res);
res = b instanceof A;
System.out.println("b instanceof A: " + res);
res = b instanceof B;
System.out.println("b instanceof B: " + res);
}
}运行结果:

public class InDemo03 {
public static void main(String[] args) {
System.out.println("/n对象强制类型转换时: ------------------");
B b2 = (C) new C();
Boolean res = b2 instanceof A;
System.out.println("b2 instanceof A: " + res);
res = b2 instanceof B;
System.out.println("b2 instanceof B: " + res);
res = b2 instanceof C;
System.out.println("b2 instanceof C: " + res);
}
}运行结果:
