instanceof
判断对象的类型是否有继承关系
主程序App.java
public class App {
  public static void main(String[] args) {
    //Object > String
    //Object > Person > Teacher
    //Object > Person > Student
    Object object = new Student();
    System.out.println(object instanceof Object);   //true
    System.out.println(object instanceof Person);   //true
    System.out.println(object instanceof Student);  //true
    System.out.println(object instanceof Teacher);  //false
    System.out.println(object instanceof String);   //false
    System.out.println("-----------------------------");
    Person person = new Student();
    System.out.println(person instanceof Object);   //true
    System.out.println(person instanceof Person);   //true
    System.out.println(person instanceof Student);  //true
    System.out.println(person instanceof Teacher);  //false
    //System.out.println(person instanceof String);   //编译报错
    System.out.println("-----------------------------");
    Student student = new Student();
    System.out.println(student instanceof Object);   //true
    System.out.println(student instanceof Person);   //true
    System.out.println(student instanceof Student);  //true
    //System.out.println(student instanceof Teacher);  //编译报错
    //System.out.println(person instanceof String);   //编译报错
  }
}
 
Object类是所有类的父类
 Person.java类默认继承Object类
public class Person {
}
 
子类Teacher.java继承Person类
public class Teacher extends Person{
}
 
子类Student.java继承Person类
public class Student extends Person{
}
 
执行结果
true
true
true
false
false
-------
true
true
true
false
-------
true
true
true









