Java运算符之instanceof

instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:
( Object reference variable ) instanceof (class/interface type)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。如:
String name=“James”;
boolean result=name instanceof String;//由于name是String类型,所以返回true。
如果被比较的对象兼容于右侧类型,该运算符仍然返回true。
class Vehicle {}

public class Car extends Vehicle {
public static void main(String[] args){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result);
}
}
注意在判断一个实例引用的类型时,使用的是实际类型,而不是声明的类型,所以Vehicle a = new Car();a时car类型。另子类是父类的类型,但父类不是子类的类型。
子类的实例可以声明为父类型,但父类的实例不能声明为子类型。
所以Car b=new Vehicle();//此表达式错误
Vehicle c=new Vehicle();boolean result=c instanceof Car;//false

你可能感兴趣的:(Java运算符之instanceof)