码迷,mamicode.com
首页 > 编程语言 > 详细

Java中instanceof关键字的理解

时间:2018-03-02 14:41:10      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:定义   两种   情况下   main   布尔类型   公式   out   运行时   nbsp   

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

标签:定义   两种   情况下   main   布尔类型   公式   out   运行时   nbsp   

原文地址:https://www.cnblogs.com/chengxuzhijia/p/8492611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!