【笔记】instanceof类

instanceof 是 Java 语言中的一个保留关键字,它是一个二元运算符,用于测试左边的对象是否是其右边类或接口的实例。以下是关于 instanceof 的详细解释:

定义和用途
instanceof 用于判断一个对象是否是一个类的实例,或者是否实现了某个接口。
它返回一个布尔值(true 或 false)。
当左边的对象是右边类或其子类的实例时,返回 true;否则返回 false。
使用方法
基本语法为:

java
result = object instanceof Class
result:一个布尔变量,用于存储判断结果。
object:一个对象实例。
Class:一个类名或接口名。
注意事项
对象与类的关系:
类的实例包括该类本身的实例,以及所有直接或间接子类的实例。
instanceof 左边显式声明的类型与右边操作元必须是同种类或存在继承关系,即需要位于同一个继承树。
编译与运行的区别:
在编译状态中,Class 可以是 object 对象的父类、自身类或子类,这三种情况下 Java 编译时不会报错。
在运行状态中,Class 可以是 object 对象的父类或自身类,但不能是子类。
接口与实现类的关系:
如果 Class 是一个接口,并且 object 是该接口的实现类的实例,那么 instanceof 也会返回 true。
示例
java

public interface Person {  
    void eat();  
}  
  
public class People implements Person {  
    @Override  
    public void eat() {  
        System.out.println("======");  
    }  
}  
  
public class Xiaoming extends People {  
    @Override  
    public void eat() {  
        System.out.println("++++++++");  
    }  
}  
  
public static void main(String[] args) {  
    People p = new People();  
    Xiaoming x = new Xiaoming();  
    System.out.println(p instanceof Person); // true  
    System.out.println(p instanceof Xiaoming); // false  
    System.out.println(x instanceof Person); // true  
    System.out.println(x instanceof People); // true  
}

总结
instanceof 是 Java 中用于判断对象实例与类或接口之间关系的关键字,它返回布尔值以指示对象是否是指定类或接口(或其子类/实现类)的实例。在使用时,需要注意对象与类之间的继承关系,以及编译状态与运行状态的区别。

猜你喜欢

转载自blog.csdn.net/Aliano217/article/details/140098662