instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类(也可以是接口),它用于判断前面的对象是否是后面的类,或者其子类,实现类的实例。如果是,则返回true,如果不是就返回false
注:instanceof运算符前面操作数的编译时的类型要么与后面的类相同,要么与后面的类具有父子继承关系,否则会引起编译错误
public class InstanceofTest
{
public static void main(String[] args)
{
Object hello="Hello";
System.out.println(hello instanceof Object);//Object类是所有类的父类,也是String类的父类,返回true;
System.out.println(hello instanceof String); //返回true;
System.out.println(hello instanceof Math); //Math是Object的子类,所以返回false;
System.out.println(hello instanceof Comparable);//String类实现了Compareable接口,所以返回true;
String a="HELLO";
System.out.println(a instanceof Math); //String类既不是Math类,也不是Math类的父类,所以编译无法通过
}
}