前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java instanceof 运算符

Java instanceof 运算符

作者头像
用户7886150
修改2021-02-01 10:36:26
4760
修改2021-02-01 10:36:26
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java instanceof运算符

多态性带来了一个问题,就是如何判断一个变量所实际引用的对象的类型 。 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. 

18.         System.out.println("-----------");  // 分界线

19.        

20.         // 引用 Teacher 类的实例

21.         obj = new Teacher();

22.         if(obj instanceof Object){

23.             System.out.println("我是一个对象");

24.         }

25.         if(obj instanceof People){

26.             System.out.println("我是人类");

27.         }

28.         if(obj instanceof Teacher){

29.             System.out.println("我是一名教师");

30.         }

31.         if(obj instanceof President){

32.             System.out.println("我是校长");

33.         }

34.     }

35. }

36. 

37. class People{ }

38. class Teacher extends People{ }

39. class President extends Teacher{ }

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

 Java学习交流群:587131012

参考资料:http://www.makeru.com.cn/

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档