没明白向上向下转型的意义和作用?

没明白向上向下转型的意义和作用?

为什么要这样做呢?

向上转型,是儿子变成爸爸然后调用爸爸的方法?

向下转型,是爸爸变成儿子然后调用儿子的方法?

转型前需要extends吗?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

Animal two 中的two 指的是父类的引用 ,new Cat ()指的是子类对象。就是我们可以通过 two 这个引用去调用新new出类的子类对象。这么调用的好处是,我们通过父类引用对象,根据它子类的不同,那么调用子类中重新的父类中的方法就会展现出不同的结果,这就是多态存在的意义。

比如,你可以说 一个动物 它是狗,或它是猫。

如果你给它new一个狗的对象,那它执行吃的时候,它吃的就是狗粮,如果你给它new一个猫的对象,执行吃的方法的时候,它吃的就是狗粮

向下转型你可以这样理解,现在有人给了你一只动物,但是你要调用猫的技能,那你不能直接说,动物你给我捉个老鼠吧,你要先强转,变成一只猫,然后才能让猫去抓老鼠。


好帮手慕珊 2018-05-30 15:39:21

extends是继承的关键字,如果想向上和向下转型的话,两个类之间是要有继承关系的。

你可以看一下老师给的向上转型的例子,父类引用指向子类对象,调用的是子类的方法。

http://img1.sycdn.imooc.com//climg/5b0e54380001defe13450714.jpg

下面是向下转型的应用场景,就是强制类型转换。

http://img1.sycdn.imooc.com//climg/5b0e54d4000161f706160454.jpg

这两种方式在我们的开发中都是常见的,随着学习的深入也会看到他们越来越多的应用。也建议再看看这两节的视频,掌握他们的使用方式。

祝学习愉快!


  • 提问者 广州麻辣牛杂档 #1
    我看不懂一些概念,比如父类引用指向子类对象,是什么意思呢?为什么不直接用子类指向子类 父类指向父类然后再调用呢?
    2018-05-30 16:15:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师