首页 > 其他分享 >instanceof

instanceof

时间:2023-02-12 23:34:35浏览次数:33  
标签:instanceof 子类 System b2 println out

类型转换 引用类型,判断一个对象是什么类型

obj instanceof Class

其中 obj 为一个对象,Class 表示一个类或者一个接口

左边的引用类型是否与右边的引用类型的类型是否相同,或左边引用类型是右边引用类型的子类或实现类(右边引用类型可以是类、抽象类、接口)

注意

  1. 左边的对象实例不能是基础数据类型

  2. 左边对象实例和右边的类必须在同一个继承树上

  3. null 用 instanceof 跟任何类型比较时都是 false

    public interface A{}
    public Class B implements A{}
    public Class C extends B{}
     
    
    public class Test{
       public static void main(String[] args) {
           A a = null;
           B b = null;
           //flase ,因为null和任何类型比都是false
           System.out.println(a instanceof A);
           System.out.println(b instanceof B);
           
           a = new B();
           b = new B();
           //true a是接口A的实例对象引用指向子类B,也就是B和A比,B实现了A接口
           System.out.println(a instanceof A);
           //true a是接口A的实例对象引用指向子类B,也就是B和B比
           System.out.println(a instanceof B);
           //true b是类B的实例对象,也就是B和A比,B实现了A接口
           System.out.println(b instanceof A);
           //true b是类B的实例对象,也就是B和B比
           System.out.println(b instanceof B);
           
           B b1 = new B();
           B b2 = new C();
           //fasle b1是B的实现类,也就是B和C比,B不是C的子类
           System.out.println(b1 instanceof C);
           //true b2是父类B引用指向子类C,也就是C和A比,C是A的子类
           System.out.println(b2 instanceof A);
           //true b2是父类B引用指向子类C,也就是 C和B比,C是B的子类
           System.out.println(b2 instanceof B);
           //true b2是父类B引用指向子类C,也就是是C和C比
           System.out.println(b2 instanceof C);  
       }
    }
     

     

标签:instanceof,子类,System,b2,println,out
From: https://www.cnblogs.com/zhuyilong/p/17115004.html

相关文章

  • 13 instanceof 和类型转换
    instanceof和类型转换packagecom.zhan.base05Oop.base05Oop04;publicclassTest13{//编译看左,运行看右!!!!!!/*1.父类的引用指向子类:即声明的是父类,......
  • typeof和instanceof的区别
    1.typeof用于判断数据类型,返回值有number、string、boolean、function、undefined、object六个。在这里我们可以看到typeof判断null、array、object以及函数的实例(new+......
  • instanceof和类型转换
    publicclassStudentextendsPerson{publicvoidgo(){System.out.println("go");}}publicclassTeacherextendsPerson{}publicclassPerson{......
  • instanceof关键字--Java基础051
    /*instanceof关键字instanceof关键字的作用:判断一个对象是否属于指定的类别。instanceof关键字的使用前提:判断的对象与指定的类别必须要存在继承或者实现的关系。instanceo......
  • Java instanceof运算符
    javainstanceof运算符用于测试指定对象是否是指定类型(类或子类或接口)的实例。java中的instanceof也称为类型比较运算符,因为它将类型与实例进行比较。它返回true或fal......
  • Vue3 Vite 打包后页面报错 Function has non-object prototype 'undefined' in instan
    问题原本可以正常打包部署运行,前两天加了些新功能,再打包就遇到这个问题,其意为:函数在instanceofcheck中具有非对象原型“undefined”TypeError:Functionhasnon-object......
  • 【SpringBoot】源码之 Java16新特性:【instanceOf】
    在java16之前,我们要进行instanceOf判断一般会伴随着强转操作,就像这样:if(objinstanceofString){Strings=(String)obj;...}这样的书写方式看起来比......
  • instanceof和类型转换
    1.instanceof:判断类型是否相似2.System.out.println(XinstanceofY);//能不能编译通过!取决于X和Y直接是否存在父子关系,有父子关系编译通过,无父子关系编译报错。X指......
  • JavaScript学习笔记—instanceof和hasOwn
    1.instanceof用来检查一个对象是否是一个类的实例检查的是对象的原型链上是否有该类实例(只要原型链上有该类实例,就会返回true)Object是所有对象的原型,所以任何对象和Ob......
  • 【Java源码解析】如何严谨地重写 equals 方法、getClass 方法与 instanceof 关键词用
    【Java源码解析】如何严谨地重写equals方法、getClass方法与instanceof关键词用法比较https://blog.csdn.net/m0_46360532/article/details/123118780文章目......