
【安卓学习笔记】JAVA基础Lesson9-对象的转型
发布日期:2021-05-07 20:17:06
浏览次数:12
分类:精选文章
本文共 1332 字,大约阅读时间需要 4 分钟。
对象的转型是面向对象编程中的多态性体现。在Java中,对象的转型分为向上转型和向下转型。以下是详细的解释和示例:
1. 向上转型
向上转型是指将子类对象赋值给父类引用。这种转型在Java中是自动进行的,因为子类是父类的扩展,父类引用可以存储子类对象。
示例代码:
class Father { String str; int num; void Function() { System.out.println("Father's Function"); }}class Son extends Father { char ch; void Fun_son() { System.out.println("Son's Fun_son"); } void Function() { super.Function(); System.out.println("Son's Function"); }}class Test { public static void main(String[] args) { Son a = new Son(); Father b = a; // 向上转型,b引用指向Son对象 b.str = "abc"; b.num = 123; b.Function(); // 调用Son类的Function方法 }}
解释:
Son a = new Son();
创建一个Son对象a。Father b = a;
将a赋值给Father类型的引用b,实现了向上转型。b.str = "abc";
由于b是Father引用,可以直接访问Son对象a的str成员变量。b.Function();
调用的是Son类的Function方法,因为b引用指向的是Son对象。
2. 向下转型
向下转型是指将父类对象赋值给子类引用,需要使用强制转换操作,否则会导致编译错误。在运行时,必须确保父类对象实际上是子类类型,否则会抛出ClassCastException。
示例代码:
class Test { public static void main(String[] args) { Father A = new Father(); // 创建一个Father对象 Son B = (Son) A; // 向下转型,B引用指向Father对象 B.Fun_son(); // 调用Father的Fun_son方法,无法访问Son特有的成员变量 }}
注意事项:
- 向下转型必须确保父类对象实际上是子类类型,否则会抛出ClassCastException。
- 使用强制转换时,通常会带有风险,需谨慎处理。
总结
- 向上转型:自动发生,将子类对象赋值给父类引用,适用于通用场景。
- 向下转型:强制转换,用于访问子类特有的成员,需确保类型安全。
通过这些示例,可以更好地理解Java中的多态性以及引用类型的转换机制。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年03月30日 19时31分28秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
自动安装服务2
2019-03-04
android 用action拦截打电话界面
2019-03-04
错误: 编码GBK的不可映射字符
2019-03-04
Python-Url编码和解码
2019-03-04
2019年一个程序员的回顾与成长计划
2019-03-04
vue if else用法。
2019-03-04
vue 官方实例教程 markdown demo
2019-03-04
Python数据类型 列表、元组、集合、字典的区别和相互转换
2019-03-04
宝塔配置404 502页面
2019-03-04
Mac OS X 下 su 命令提示 sorry 的解决方法
2019-03-04
vue-router 缓存路由组件对象
2019-03-04
js中事件捕获和事件冒泡(事件流)
2019-03-04
js的各种数据类型判断(in、hasOwnProperty)
2019-03-04
严格模式、混杂模式与怪异模式
2019-03-04
一篇文章带你搞定 Java 中字符流的基本操作(Write / Read)
2019-03-04
HTML 和 CSS 简单实现注册页面
2019-03-04
(SpringMVC)springMVC.xml 和 web.xml
2019-03-04