为了账号安全,请及时绑定邮箱和手机立即绑定

关于java中向上转型的一小疑问

关于java中向上转型的一小疑问

摇曳的蔷薇 2019-03-13 13:15:05
interface fruit{    public void say();}class apple implements fruit{    public void say(){        System.out.println("eat apple");    }}public class Just4Fun {    public static void main(String[] args) {        fruit anApple = null ;    //****************************************************        anApple = new apple() ;      //向上转型//****************************************************        anApple.say();    }} 说下我的思路吧:以这个例子做说明,实例化apple之后将其赋值给anApple,而anApple类型为fruit,空指向,在第二步阶段完成向上转型操作。但这里,我想问的是为什么经常会先把实例化的对象进行向上转型操作呢?这样做的有什么意义?求帮忙分析下我的【思路】以及这么做的【意义】,困惑很久了已经::>_<:: 先谢谢啦~
查看完整描述

6 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

看你的代码真心头痛,虽然code寥寥无几,但是代码规范太差。

解决你的问题:
向上是非常有意义的。(这个是废话,毕竟设计出来了)
写一个简单的例子,
生产者和消费者,生产者会生产动物,有兔子等各种动物,消费者不知道生产者生产的是什么,所以在消费者那边就统称为动物。

这下你明白了吧


查看完整回答
反对 回复 2019-04-20
?
慕村9548890

TA贡献1884条经验 获得超4个赞

可以看看源码,看多了就理解了


查看完整回答
反对 回复 2019-04-20
?
侃侃无极

TA贡献2051条经验 获得超10个赞

这就是Java三大特性中多态的体现,我们编程中一直提倡面向接口编程。与其说它是一种规范,不如直接说这是一种标准。在写代码时一定要以业务为驱动。检查代码的同时要思考如果业务发生变化的话这样的代码会有什么问题,好不好改等等的情况。
建议看看Java思想和设计模式

查看完整回答
反对 回复 2019-04-20
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

看看书或者网上关于多态和接口的描述以及应用,你会发现这样的设计真的很巧妙!


查看完整回答
反对 回复 2019-04-20
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

并不是一定说要这么写,这样写只是说如果你用到多态的话,这样写就比较灵活
实际上我大部分开发中还是该怎么写怎么写,你理解是这个意思就行了

查看完整回答
反对 回复 2019-04-20
  • 6 回答
  • 0 关注
  • 374 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号