当前位置: 首页 > 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.xdnf.cn/news/1354159.html

相关文章:

  • OCR、文档解析工具合集(下)
  • Text2API与Text2SQL深度对比:自然语言驱动的数据交互革命
  • 【51单片机】【protues仿真】基于51单片机冰箱系统
  • 嘉立创EDA快捷键汇总
  • 每日一题8.23
  • Windows应急响应一般思路(三)
  • 从词源和输出生成等角度详细解析PHP中常用文件操作类函数
  • BEVDet/BEVDet4D
  • 【40页PPT】数据安全动态数据脱敏解决方案(附下载方式)
  • LeetCode 分类刷题:2529. 正整数和负整数的最大计数
  • 【大语言模型 16】Transformer三种架构深度对比:选择最适合你的模型架构
  • XCVM1802-2MSEVSVA2197 XilinxAMD Versal Premium FPGA
  • flink常见问题之超出文件描述符限制
  • android studio配置 build
  • VS Code 中创建和开发 Spring Boot 项目
  • JWT实现Token登录验证
  • Nacos-11--Nacos热更新的原理
  • 语义普遍性与形式化:构建深层语义理解的统一框架
  • C++算法题—— 小C的细菌(二维偏序离线 + 树状数组 + 坐标压缩)
  • 使用Proxifier+vmware碰到的一些问题
  • JUC之虚拟线程
  • 论文阅读:Inner Monologue: Embodied Reasoning through Planning with Language Models
  • 173-基于Flask的微博舆情数据分析系统
  • 数据结构 之 【AVL树的简介与部分实现】(部分实现只涉及AVL树的插入问题,包括单旋((右单旋、左单旋))、双旋(左右单旋、右左单旋)等操作)
  • SAP FI 应收应付账龄分析
  • leetcode26:删除有序数组中的重复项Ⅰ(快慢指针解法)
  • X射线胸部肺炎检测:基于深度学习的医学影像分析项目
  • 概率论基础教程第六章 随机变量的联合分布(二)
  • 告别SaaS数据绑架,拥抱数据主权:XK+独立部署版跨境商城定制,为海外物流企业深度赋能
  • 遥感机器学习入门实战教程|Sklearn案例⑨:数据预处理(Processing)