Java中instanceof关键字的理解

Posted chengxuzhijia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中instanceof关键字的理解相关的知识,希望对你有一定的参考价值。

概念:java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

公式: result = object instanceof class

参数分析:

result :布尔类型

object :任意的一个实例或者是表达式

class: 任意一个已定义的类

结果分析:

如果object是class的一个实例返回true,如果不是或者object 为 null 则返回false

instaanceof在运行时和编译时是有区别的:

在编译状态中,class可以是object对象的父类,自身类,子类。在这三种情况下Java编译时不会报错。

在运行转态中,class可以是object对象的父类,自身类,不能是子类。在前两种情况下result的结果为true,最后一种为false。但是class为子类时编译不会报错。运行结果为false。

public class Base {
 String name = "base";
 public void baseA() {
  System.out.println("name is" + name);
 }
}

public class Child extends Base {
 String name ="child";
 String age ="18";
}

public class Test {

 public static void main(String[] args) {
  Base base = new Child();
  System.out.print(base instanceof Base);
  System.out.print(base instanceof Child);
  System.out.print(base instanceof Object);
  System.out.print(base instanceof System); --编译错误
  
 }

}

技术分享图片

 

技术分享图片

 

 

 

 

 

 
















以上是关于Java中instanceof关键字的理解的主要内容,如果未能解决你的问题,请参考以下文章

Java中instanceof关键字的理解

Java中instanceof关键字的理解

instanceof怎么发音

课程总结

第六周&java实验报告四

java中isAssignableFrom()方法与instanceof关键字的区别