描述
instanceof通过返回一个布尔值来指出,某个对象是否是某个特定类或者是该特定类的子类的一个实例。
用法
a instanceof Class
参数:
a:任意对象实例。
Class:任意已定义的对象类。
说明
- instanceof运算符是双目运算符,左边的操作元是一个对象实例,右边是一个类。当左边的对象是右边的类的一个实例对象时,运算结果为true,否则为false
- 一个类的实例包括本身的实例,以及所有直接或间接子类的实例
- instanceof左边操作元显式声明的类型(即它的引用类型)与右边操作元必须是同种类或有继承关系,即位于继承树的同一个分支上,否则会编译出错
举例
Person类:
package com.oop.demo11;
public class Person {
}
student类:
package com.oop.demo11;
public class Student extends Person{
}
Teacher类:
package com.oop.demo11;
public class Teacher extends Person{
}
Application类:
package com.oop.demo11;
public class Application {
public static void main(String[] args) {
//三种继承分支:
//Object>String
//Object>Person>Student
//Object>Person>Student
Person person = new Student();
System.out.println(person instanceof Student);
System.out.println(person instanceof Person);
System.out.println(person instanceof Object);
System.out.println(person instanceof Teacher);
//System.out.println(person instanceof String); //编译报错!!
}
}
重要声明:本篇文章整理自B站狂神说Java
参考文章:https://www.jb51.net/article/127958.htm