instanceof用法总结

instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。

这里说明下:

类的实例包含本身的实例,以及所有直接或间接子类的实例

instanceof左边显式声明的类型与右边操作元必须是同种类或存在继承关系,也就是说需要位于同一个继承树,否则会编译错误

这里用样例说明一下:

//word类
public class Word {
}
//Animal类
public class Animal extends Word{
}
//Dog类
public class Dog extends Animal{
}

测试类

public class Text {
    public static void main(String[] args) {
        Animal dog = new Dog();
        System.out.println(dog instanceof Dog);
        System.out.println(dog instanceof Animal);
        System.out.println(dog instanceof Word);

        System.out.println("==============================");

        Animal animal = new Animal();
        System.out.println(animal instanceof Dog);
        System.out.println(animal instanceof Animal);
        System.out.println(animal instanceof Word);

        System.out.println("==============================");

        Word word = new Word();
        System.out.println(word instanceof Dog);
        System.out.println(word instanceof Animal);
        System.out.println(word instanceof Word);
    }
}

结果
在这里插入图片描述
这是我总结的结论:
instanceof左边是对象,右边是类。当初始化左边对象的时候,初始化对象的类是右边那个类的子类或者本身的时候返回true,否则返回false;
第一个样例:Dog是Dog本身,Dog是Animal的子类,Dog是Word的孙子;所以都是true;
第二个样例:Animal是Dog的父类,创建的时候是以Animal创建的,所以animal instanceof Dog返回false,Animal是Animal本身,Animal是Word子类,所以都返回true;
第三个样例:只有Word是word本身,Animal,Dog是Word的子类,所以word instanceof Animal,word instanceof Dog返回false,word instanceof Word返回true;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

译制片~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值