instanceof 判断两个类之间有没有父子关系
只有是直系关系的时候才为true
package Instanceof;
public class Application {
public static void main(String[] args) {
//Object>String
//Object>Person>Teacher
//Object>Person>Student
Object object = new Student();
//System.out.println(X instanceof Y); 能不能编译通过
//必须是直系关系才可以
System.out.println(object instanceof Student);//t
System.out.println(object instanceof Person);//t
System.out.println(object instanceof Object);//t
System.out.println(object instanceof Teacher);//f
System.out.println(object instanceof String);//f
System.out.println("===============================");
Person person = new Student();
System.out.println(person instanceof Student);//t
System.out.println(person instanceof Person);//t
System.out.println(person instanceof Object);//t
System.out.println(person instanceof Teacher);//f
//选了Student这条线所有跟Teacher就没有关系了
//System.out.println(person instanceof String);
//编译报错! Person和String同级 无法比较
System.out.println("===============================");
Student student = new Student();
System.out.println(student instanceof Student);//t
System.out.println(student instanceof Person);//t
System.out.println(student instanceof Object);//t
//System.out.println(student instanceof Teacher);
//System.out.println(student instanceof String);
//编译均出错
}
}