1.instanceof 运算符只能用作对象的判断。
2.在 JavaSE规范 中对 instanceof 运算符的规定就是:如果 obj 为 null,那么将返回 false。
3.比较对象:
4.接口的实现类:
可以用 instanceof 运算符判断 某个对象是否是 某个 接口的实现类。
5.父类与子类
public class People {
}
public class Man extends People{
}
public class Test {
public static void main(String[] args) {
People p = new People();
People p1 = new Man();
Man p2 = new Man();
System.out.println(p instanceof Man); //false
System.out.println(p1 instanceof Man);//true
System.out.println(p2 instanceof Man);//true
}
}
6.编译器会检查 obj 是否能转换成右边的class类型,
如果不能转换则直接报错,
如果不能确定类型,则通过编译,具体看运行时定。