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 }
View Code
复制代码

 

posted @   襄阳古城  阅读(251)  评论(0编辑  收藏  举报
编辑推荐:
· 大模型 Token 究竟是啥:图解大模型Token
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
阅读排行:
· BotSharp + MCP 三步实现智能体开发
· BotSharp 5.0 MCP:迈向更开放的AI Agent框架
· 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
· 【ESP32】两种模拟 USB 鼠标的方法
· 设计模式脉络
点击右上角即可分享
微信分享提示