instanceof释义
instanceof用于判断一个对象是否是一个类的实例, 如:
boolean result = obj instanceof Class;
其中obj是对象,Class表示一个类或一个接口
obj为null时
System.out.println(null instanceof Object);//false
instanceof规则,当obj为null时,返回flase
子类与父类、接口间的比较
先准备四个类(接口)
interface Person{}
class Man implements Person{}
class Woman implements Person{}
class Worker extends Man{}
然后比较
public class Test
{
public static void main(String args[]){
Person pm = new Man();
Person pwm = new Woman();
Person pwo = new Worker();
Worker wor = new Worker();
//实现类与接口
System.out.println(pm instanceof Person);//true
//子类与父类
System.out.println(pwo instanceof Man);//true
//“隔代”实现类
System.out.println(pwo instanceof Person);//true
//没有继承关系
System.out.println(pwo instanceof Woman);//false
//没有向上转型的子类
System.out.println(wor instanceof Person);//true
//没有继承关系且没有向上转型
System.out.println(wor instanceof Woman);//编译报错
}
}
当obj不能转型成Class时,会编译报错