instanceof
1. 作用:
- 判断某个对象与某个类型是否能够强制转换
2. 注意点:
- 通过编译需要这个对象的类型与比较类型有父子类关系
- true或false主要看对象的右边 即Father f1 = new Son(); 中主要看Son与其他类型的关系
代码示例:
package oop.Demo05;
public class Person {
public void run(){
System.out.println("run");
}
}
package oop.Demo05;
public class Teacher extends Person{
}
package oop.Demo05;
public class Student extends Person{
}
package oop;
import oop.Demo05.Person;
import oop.Demo05.Student;
import oop.Demo05.Teacher;
public class Application {
public static void main(String[] args) {
//Object>Person>Student
//Object>Person>Teacher
Object object = new Student();
Student student = new Student();
Person person = new Student();
Person person1 = new Person();
System.out.println(object instanceof Student); //true
System.out.println(object instanceof Person); //true
System.out.println(object instanceof Object); //true
System.out.println(object instanceof Teacher); //false
System.out.println(object instanceof String); //false
System.out.println("======================");
System.out.println(student instanceof Student); //true
System.out.println(student instanceof Person); //true
System.out.println(student instanceof Object); //true
//System.out.println(student instanceof Teacher); 报错
//System.out.println(student instanceof String); 报错
System.out.println("======================");
System.out.println(person instanceof Student); //true
System.out.println(person instanceof Person); //true
System.out.println(person instanceof Object); //true
System.out.println(person instanceof Teacher); //false
//System.out.println(person instanceof String); 报错
System.out.println("======================");
System.out.println(person1 instanceof Student); //false
System.out.println(person1 instanceof Person); //true
System.out.println(person1 instanceof Object); //true
System.out.println(person1 instanceof Teacher); //false
//System.out.println(person1 instanceof String); 报错
}
}