当前位置: 首页 > news >正文

Day58 Java面向对象13 instanceof 和 类型转换

Day58 Java面向对象13 instanceof 和 类型转换

1.instanceof关键字

instanceof关键字的作用是判断一个对象是否是某个类或其子类的实例,它返回一个布尔值true/false

dog1 instanceof Dog;   //返回true
dog1 instanceof Animals;  //返回true
dog1 instanceof Object;  //返回true 
dog1 instanceof Cat;  //返回false

2.对象类型转换

①子转父(向上转型)

  • 把子类转换父类
  • 自动转换,不需要显示定义
  • 只能调用父类中的方法(如果子类进行了重写,执行子类版本),无法调用子类独有方法
Dog dog = new Dog();
Animal a = dog;  // 向上转型,自动发生
a.makeSound();   // 调用Dog重写的makeSound()

②父转子(向下转型)

  • 把父类转换为子类
  • 强制转换,需要显示定义
  • 必须保证父类引用实际指向的是该子类对象,否则会抛出异常 ClassCastException
Animal a = new Dog();  // 向上转型
if (a instanceof Dog) {Dog d = (Dog) a;  // 向下转型,安全d.bark();         // 可以调用Dog独有的方法
}
http://www.dtcms.com/a/347533.html

相关文章:

  • 自动化运维Ansible
  • 13.机器学习—— ML特征工程和优化方法
  • CANN安装
  • 电力方向国际期刊推荐
  • 分析 HashMap 源码
  • 《TCP多线程通信代码C语言开发流程解析》
  • redis----hash类型详解
  • 领码方案:新一代页面权限体系全景解析(完整版)
  • Radis安装部署(Linux,Docker)
  • 温度对直线导轨的性能有哪些影响?
  • TypeScript 的泛型(Generics)作用理解
  • 如何优雅解决 OpenCV 分段错误(Segfault):子进程隔离实战
  • 工业企业与海关匹配数据(2000-2013)
  • Unity中删除不及时的问题
  • DeepSeek-V3.1发布,预示下一代国产芯片即将发布,更新一小版本,跨出一大步
  • 深入理解3x3矩阵
  • Java—— 配置文件Properties
  • Spring Boot 实现 POJO 级联封装复杂属性
  • Redis学习笔记 ----- 缓存
  • 寻鲜之旅“咖”约深圳,容声冰箱引领“养鲜”新体验
  • 解决coze api使用coze.workflows.runs.create运行workflow返回400,但text为空
  • ⚡ Ranger 基础命令与功能详解
  • Talkie AI
  • 硬件笔记(27)---- 恒流源电路原理
  • 环境 (shell) 变量
  • QT-Mysql-查询语句-查询是否有表-表列名-查询记录
  • 力扣hot100:搜索二维矩阵与在排序数组中查找元素的第一个和最后一个位置(74,34)
  • ros 消息类型与查阅相关内容
  • XCVM1802-2MSEVSVA2197 XilinxAMD Versal Premium FPGA
  • 同步和异步、阻塞和非阻塞的再理解