10.4 使用instanceof操作符判断对象类型
1、概述
当在程序中执行向下转型操作时,如果父类对象不是子类对象的实例,就会发生ClassCastException异常,所以在做执行向下转型之前需要养成一个良好的习惯,就是判断父类对象是否为子类对象的实例。这个判断通常使用instanceof操作符来完成。
语法格式:myobject instanceof ExampleClass //myobject:某类的对象引用 ExampleClass:某个类
例子10.7

1 class Quadrangle_B{ 2 //SomeSentence 3 } 4 5 class Square extends Quadrangle_B{ 6 //SomeSentence 7 } 8 9 class Anything{ 10 //SomeSentence 11 } 12 13 public class Parallelogram_B extends Quadrangle_B{ 14 public static void main(String args[]) { 15 Quadrangle_B q = new Quadrangle_B(); //实例化父类对象 16 17 //判断父类对象是否为Parallelogram_B子类的一个实例 18 if (q instanceof Parallelogram_B) { 19 Parallelogram_B p = (Parallelogram_B)q; 20 System.out.println("父类对象Quadrangle_B为Parallelogram_B子类的一个实例"); 21 } 22 23 //判断父类对象是否为Square子类的一个实例 24 if (q instanceof Square) { 25 Parallelogram_B p = (Parallelogram_B)q; 26 System.out.println("父类对象Quadrangle_B为Square子类的一个实例"); 27 } 28 29 System.out.println("打印完毕!"); 30 31 //由于q对象不为Anything类的对象,所以这条语句是错误的 32 //System.out.println(q instanceof Anything); 33 34 } 35 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· BotSharp + MCP 三步实现智能体开发
· BotSharp 5.0 MCP:迈向更开放的AI Agent框架
· 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
· 【ESP32】两种模拟 USB 鼠标的方法
· 设计模式脉络