Java上转型对象

好处:

1:实现了Java 中的多态;提高了代码的简介性。
2:提高了代码的复用率,减少重复代码的编写,一定程度上达到了解耦。

坏处:

会丢失子类特有的某些方法和属性。(在一篇博客上看见说一定可以,我真是笑了)

实战演习+错误展示:

在这里插入图片描述

定义父亲跟儿子;a 是正常创建的父亲对象;b 是用上转型对象方式创建的儿子对象。这里调用孩子特有的打篮球方法,发现 a ,b都报错!证明上转型的确会丢失儿子自己独有的方法!

在这里插入图片描述
在这里插入图片描述

下面看看,正常的父子都有打篮球方法,那就没问题,父亲打父亲的,儿子打儿子的,儿子没有吃饭方法,但是没关系,根据继承的特性,父亲可以吃饭,儿子也可以吃饭,但是吃的是父亲的饭。父爱如山。

在这里插入图片描述

那么用儿子创建父亲(翻了天了)当然也是大错特错的,编译都不给过

在这里插入图片描述

错误总结:(摘自网上某篇博客)

在这里插入图片描述

由此可见这两个结论是错的;也希望各位大佬对自己发布的东西负责,写得难懂可以说不想教人,或者技术高深,写错了还不及时改,就是错误引导了。
下面我们看看上转型对象怎么简洁了代码呢?请看:

1:定义一个Club方法,规定只有父亲类那种成熟男人才能进入。子类是进不去的。
2:那么怎么办?儿子们叛逆期也想进去玩,就穿上爸爸的衣服,假装成爸爸进去,进去后再露出自己的本色。
3:Club呢,也不用为一个儿子专门定制一个,只要是父亲类,就都让他进同一个Club玩。

在这里插入图片描述

这样就发现解决需求了,大家都能进Club玩,吃饭打球都可以。如果没有做上转型对象。儿子要进Club玩,怎么办?那就只能单独开一间未成年不能进的Club。那假如还有更细分的年龄阶段呢?那岂不是要开N个Club?写N个方法?或者父亲要进网吧Club揪出儿子,但是却不给父亲进。

在这里插入图片描述

虽然比喻有点不恰当,但是这样确实做到了简化,做到了一个规范化统一。

好了,这期分享就到这里,谢谢大家,鞠躬!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值