Java instanceof 运算符

本文详细介绍了Java中instanceof运算符的使用方法,通过示例代码展示了如何判断一个变量所引用的对象的实际类型,强调了instanceof运算符在多态性中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

推荐学习目录

1. 继承的概念与实现
2. Java super关键字
3. 继承中的方法的覆盖和重载
4. 多态和动态绑定
5. instanceof 运算符
6. 多态对象的类型转换
7. Java static关键字
8. Java final关键字

9. Java Object类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值