博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java知多少(32)instanceof
阅读量:6906 次
发布时间:2019-06-27

本文共 1376 字,大约阅读时间需要 4 分钟。

多态性带来了一个问题,就是如何判断一个变量所实际引用的对象的类型 。 C++使用runtime-type information(RTTI),Java 使用 instanceof 操作符。

instanceof 运算符用来判断一个变量所引用的对象的实际类型,注意是它引用的对象的类型,不是变量的类型。请看下面的代码:

1 public final class Demo{ 2     public static void main(String[] args) { 3         // 引用 People 类的实例 4         People obj = new People(); 5         if(obj instanceof Object){ 6             System.out.println("我是一个对象"); 7         } 8         if(obj instanceof People){ 9             System.out.println("我是人类");10         }11         if(obj instanceof Teacher){12             System.out.println("我是一名教师");13         }14         if(obj instanceof President){15             System.out.println("我是校长");16         }17         System.out.println("-----------");  // 分界线18        19         // 引用 Teacher 类的实例20         obj = new Teacher();21         if(obj instanceof Object){22             System.out.println("我是一个对象");23         }24         if(obj instanceof People){25             System.out.println("我是人类");26         }27         if(obj instanceof Teacher){28             System.out.println("我是一名教师");29         }30         if(obj instanceof President){31             System.out.println("我是校长");32         }33     }34 }35 class People{ }36 class Teacher extends People{ }37 class President extends Teacher{ }

运行结果:

我是一个对象
我是人类
-----------
我是一个对象
我是人类
我是一名教师
可以看出,如果变量引用的是当前类或它的子类的实例,instanceof 返回 true,否则返回 false。

系列文章:

转载地址:http://ywgdl.baihongyu.com/

你可能感兴趣的文章
理解sklearn.feature.text中的CountVectorizer和TfidfVectorizer
查看>>
在OAF页面中集成ECharts以及highcharts用于显示图表
查看>>
hibernate.properties和hibernate.cfg.xml
查看>>
DataSet排序问题
查看>>
extern "C"用法详解
查看>>
Java将数字字符串转换成中文形式
查看>>
android post 提交数据
查看>>
简说宽带商的弹窗广告进化及网站应对之策(DNS劫持进化论)
查看>>
为Mac Terminal设置代理
查看>>
如何快速的开发一个完整的 iOS 直播 app(原理篇)
查看>>
使用GSON解析json数据
查看>>
iOS逆向之旅(进阶篇) — 工具(LLDB)
查看>>
Angular学习笔记(二) - 生命周期钩子
查看>>
《前端十年心路-我把一切告诉你》的书稿大纲&问题收集
查看>>
mysql explain
查看>>
MyBatis-Plus初步
查看>>
推荐10个Java方向最热门的开源项目(8月)
查看>>
Redis勒索事件爆发,如何避免从删库到跑路?
查看>>
3Sum Smaller
查看>>
逃离方法牢笼
查看>>