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

安卓基础(强制转换)

​一、强制转换(Type Casting)​

​1. 什么是强制转换?​

当你想将一个类型的对象转换为另一个类型时,如果它们之间存在继承关系,就需要​​强制转换​​。
​注意​​:只有存在继承关系的类型才能转换(如父类转子类)。

​2. 生活例子​
  • 把水倒进杯子:水(父类)可以装进杯子(子类),但需要明确告知:“这是杯子!”(强制转换)。
​3. 代码示例​
// 父类
class Animal {void eat() { System.out.println("Animal is eating");}
}// 子类
class Dog extends Animal {void bark() {System.out.println("Dog is barking");}
}// 使用场景
Animal animal = new Dog(); // 向上转型(自动转换)
animal.eat(); // ✅ 正确// 需要调用子类独有的方法,必须强制转换
if (animal instanceof Dog) { // 先检查类型Dog dog = (Dog) animal; // 强制转换dog.bark(); // ✅ 正确
}
​4. 强制转换的风险​

如果未检查类型直接转换,可能抛出 ​ClassCastException​:

Animal animal = new Animal();
Dog dog = (Dog) animal; // ❌ 运行时崩溃!animal 不是 Dog 类型

相关文章:

  • ArkTS基础实验 (二)
  • 20250428-AI Agent:智能体的演进与未来
  • About why docker application mode taskmanager not down in time
  • 大数据应用开发和项目实战
  • Android Studio 中使用 SQLite 数据库开发完整指南(Kotlin版本)
  • 聊天室系统:多任务版TCP服务端程序开发详细代码解释
  • 机器学习分类模型性能评估:应对类别不平衡的策略与指标
  • ArcGIS arcpy代码工具——根据属性结构表创建shape图层
  • 基于STM32、HAL库的ATSHA204A安全验证及加密芯片驱动程序设计
  • RAG工程-基于LangChain 实现 Advanced RAG(预检索优化)
  • 代码随想录第30天:动态规划3
  • vue3 css模拟语音通话不同语音、正在加载等的效果
  • 《Operating System Concepts》阅读笔记:p821-p897
  • C++——入门基础
  • C++学习笔记(四十二)——STL之堆操作算法
  • 嵌入式程序发开思路
  • IntelliJ IDEA 内存优化
  • 数据中心平台建设方案技术方案(Word)
  • 制作一款打飞机游戏28:编辑器完善鲁棒性
  • 回归预测 | Matlab实现DBO-LightGBM蜣螂算法优化轻量级梯度提升机多输入单输出回归预测,作者:机器学习之心
  • 国家发改委:我国能源进口来源多元,企业减少甚至停止自美能源进口对国内能源供应没有影响
  • 清华数字政府与治理研究院揭牌:服务数字政府建设需求
  • 申花四连胜领跑中超,下轮榜首大战对蓉城将是硬仗考验
  • 建投读书会·东西汇流|全球物品:跨文化交流视域下的明清外销瓷
  • 文庙印象:一周城市生活
  • 政治局会议:持续稳定和活跃资本市场