老师,关于视频里面讲的,我有新的认识

老师,关于视频里面讲的,我有新的认识

http://img1.sycdn.imooc.com//climg/605c69130959cc1105440137.jpg

http://img1.sycdn.imooc.com//climg/605c6913093cbd8606710111.jpg

http://img1.sycdn.imooc.com//climg/605c691309dbf78809560777.jpg

http://img1.sycdn.imooc.com//climg/605c69140922f27a08640717.jpg

http://img1.sycdn.imooc.com//climg/605c6914091d6fd410420866.jpg

1--既然Animal是所有动物子类的父类,那object是所有类的父类,这里我写Object完全没问题,我根本不用去考虑哪个是父类的问题,只是这里用Animal更严谨一些,而且那个eat()方法可以放在第一位,如果是Object,他并没有eat()方法,obj.eat()不能放在第一行。

2--我完全可以把继承去掉,就算是两个毫无关系的类,(object obj)接收参数,然后再让他们进行转化为对应得类,向下转换,然后决定执行调用他们哪个的方法,这个时候eat()方法就是他们自己的独有方法,把注解去掉,完全OK!

3--所以多态不一定要用在继承上面,就算是完全没有关系的两个类也可以这样操作。

正在回答

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

1回答

同学你好,Object是所有类的父类,它与任何类都有继承关系,所以使用Object接收参数,就是使用了有继承关系的类来进行转换的。

同学可以尝试书写3个不同的类--> A类、B类、C类,同学可以尝试使用C类来接收A类或者B类,这样是报错的,不成立的。

祝学习愉快!

  • 阿山123 提问者 #1

    我的意思,是用object当参数,来接收三个完全没关系的参数,这样是没问题的,我的意思就是多态的方式,使用在三个完全没关系的类也可以,不一定要用在继承关系的父类或者子类上面

    2021-03-25 19:22:41
  • 好帮手慕小班 回复 提问者 阿山123 #2

    同学你好,使用Object类型来接收三个完全没关系的参数,这样是可以的,符合语法规范。

    但是这样并没有实现对应的多态的内容,多态是同一操作作用于不同的对象,可以产生不同的效果。

    而同学使用三个完全没关系的类,并没有实现对应多态的效果。比如

    创建一个Student类

    http://img1.sycdn.imooc.com//climg/605d539609ce3b4e05300365.jpg

    Master中,设置参数为Object

    http://img1.sycdn.imooc.com//climg/605d53a509bd92a804130318.jpg

    最后传入Student

    http://img1.sycdn.imooc.com//climg/605d53d0097f60c003220109.jpg

    并没有任何输出,所以这并不是一个多态的使用。

    ​祝学习愉快!

    2021-03-26 11:24:44
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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