其他分享
首页 > 其他分享> > 面向对象基础-多态02(引用类型的类型转换)

面向对象基础-多态02(引用类型的类型转换)

作者:互联网

引用类型的类型转换

基本数据类型之间是可以发生数据类型转换的,引用数据类型也是可以的

但是引用数据类型发生转换的条件比较苛刻,出错后的问题也更严重

引用数据类型要发生类型转换

自动类型转换

强制类型转换

ClassCastException

强制类型转换一旦失败,就会抛出ClassCastException,程序报错终止

举一个形象的例子

​ 孔子(Confucius)装爹

孔子他爹可以教JavaSE,他爹48岁

孔子会教《论语》,孔子28岁,孔子还会打游戏

Java培训很火,有很多人请孔子爹去上课,有一天孔子爹被人请走了

但是又来了一个人来请孔子爹去讲课,给的钱很多

于是孔子就穿上他爹的衣服,沾上胡子,戴上眼镜,就开始装爹

向上转型

ConfuciusFather cf = new Confucius();

这个时候,别人问孔子,您多大岁数了啊?

孔子不敢说实话,只好说我今年48岁

cf.age = 48;

到了地方,开始上课

cf.teach();

这时候就露馅了,因为孔子不会教JavaSE,于是孔子就开始教授论语,毕竟半步论语治天下

程序员学点论语没毛病

到了下课时间,孔子很想打游戏,但是想着自己现在的身份是老爹,老爹从来不打游戏

于是孔子也不敢打游戏

// cf.playGame(); 无法调用

终于,把时间熬完了,终于下班了

孔子赶紧跑回家

脱下爹的衣服,摘下眼镜,拔掉胡子

向下转型

Confucius c = (Confucius)cf;

这个时候”变年轻“的孔子打开手机,玩了一把王者荣耀

c.age = 28;

c.playGame ;

标签:02,类型转换,子类,多态,孔子,转型,引用,父类
来源: https://blog.csdn.net/gy99csdn/article/details/112424980