Java中instanceof关键字的理解

时间:2021-07-18 19:16:04

概念: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关键字的理解