A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1147664049 中级黑马   /  2016-10-26 23:38  /  1282 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

感觉多态的类不用父类引用指向子类对象啊,直接创建子类对象不就行了,何必多此一举?

15 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
多态是什么前提?是什么需求引出的多态?
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
多态出现使代码扩展性得到更大提升,以后你会理解,你现在多看看你们学的猫狗案例
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
我的理解是:
比如定义了一个接口,里面有一个抽象方法是"跑"这个动作,再定义人实现这个接口,当然"人"还有他的其他特有属性行为,又定义了男人和女人接口,他们都有自己特有的属性和行为,再往下还有学生/工人/等等等等,如果这时候我的需求是所有会"跑"的人全都跑起来,不用父类引用指向子类对象把所有实现了跑的类全都调用的话,难道你一个个new子类对象?
实际开发中用子类继承父类很少,一般都是定义接口,让子类去多实现,java不支持多继承,没做过开发不了解具体开发什么样,不过经常能听到说接口不多态八成是写错了{:8_529:}
回复 使用道具 举报
leojr 中级黑马 2016-10-27 14:11:29
7#
多态传参用的比较多,如果函数需要传对象参数,对象有好多子类,当然用父类型当形参,子类都可以传进来嘛
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
学习了!!!
回复 使用道具 举报
efkllx 中级黑马 2016-10-27 18:31:22
9#
无论狗还是猫,还是猪都继承与动物,在使用时你都可以用动物类来接收这些,因为他们都是动物,这就是多态
回复 使用道具 举报
张乐 中级黑马 2016-10-27 19:51:00
10#
回答了那么多,我觉得还是没有给楼主一个可靠回答.是的,楼主你说的没错,直接new子类就可以了啊,但是我用动物new了一个猫,猫是不是可以有动物的行为呢?也就是说多态以后,子类有自己的方法,还可以直接调用父类的方法.
回复 使用道具 举报
leimu 初级黑马 2016-10-28 16:37:44
11#
多态的前提
继承
父类引用指向子类对象
方法重写
回复 使用道具 举报
事物在不同时刻具备不同的形态...
回复 使用道具 举报
用的多了的 可以把 父类写到 一个方法李里   调用他们共有的属性和方法  方便
回复 使用道具 举报
可以可以,加油
回复 使用道具 举报
你直接创建一个子类对象的思路是对的.

以为多态就是创建的子类对象.

之所以有高级的多态概念.
让父类引用能够使用子类对象.

是为了在传递参数的时候,接收方便.

不然我的一个方法,如果是参数是父类的话,各种子类都可以当参数传进来.
如果不用多态,我们就需要为了每个子类不同的重载方法.将参数更换成新的子类.

在以后的开发中,谁让你随意改源码.
不可以.
所以最好是方法传参是父类,这样你就算改动子类的内容,也不会影响调用者.更不会重载一个方法,太麻烦了.

代码空间完全是在浪费.
回复 使用道具 举报
你现在有疑惑,只是因为你才刚开始,后面的知识你还没学到,还不知道多态的价值有多好.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马