黑马程序员技术交流社区

标题: 到底什么是多态啊 [打印本页]

作者: 1147664049    时间: 2016-10-26 23:38
标题: 到底什么是多态啊
感觉多态的类不用父类引用指向子类对象啊,直接创建子类对象不就行了,何必多此一举?
作者: Quasimodo2    时间: 2016-10-26 23:40
不错不错

作者: LXD2016    时间: 2016-10-26 23:48
小伙子很有想法啊

作者: shy4458    时间: 2016-10-27 00:18
多态是什么前提?是什么需求引出的多态?

作者: mafu1993    时间: 2016-10-27 00:42
多态出现使代码扩展性得到更大提升,以后你会理解,你现在多看看你们学的猫狗案例

作者: character3    时间: 2016-10-27 00:55
我的理解是:
比如定义了一个接口,里面有一个抽象方法是"跑"这个动作,再定义人实现这个接口,当然"人"还有他的其他特有属性行为,又定义了男人和女人接口,他们都有自己特有的属性和行为,再往下还有学生/工人/等等等等,如果这时候我的需求是所有会"跑"的人全都跑起来,不用父类引用指向子类对象把所有实现了跑的类全都调用的话,难道你一个个new子类对象?
实际开发中用子类继承父类很少,一般都是定义接口,让子类去多实现,java不支持多继承,没做过开发不了解具体开发什么样,不过经常能听到说接口不多态八成是写错了{:8_529:}
作者: leojr    时间: 2016-10-27 14:11
多态传参用的比较多,如果函数需要传对象参数,对象有好多子类,当然用父类型当形参,子类都可以传进来嘛

作者: jiaogege520    时间: 2016-10-27 15:17
学习了!!!
作者: efkllx    时间: 2016-10-27 18:31
无论狗还是猫,还是猪都继承与动物,在使用时你都可以用动物类来接收这些,因为他们都是动物,这就是多态
作者: 张乐    时间: 2016-10-27 19:51
回答了那么多,我觉得还是没有给楼主一个可靠回答.是的,楼主你说的没错,直接new子类就可以了啊,但是我用动物new了一个猫,猫是不是可以有动物的行为呢?也就是说多态以后,子类有自己的方法,还可以直接调用父类的方法.
作者: leimu    时间: 2016-10-28 16:37
多态的前提
继承
父类引用指向子类对象
方法重写
作者: 蔡永汪    时间: 2016-10-28 22:02
事物在不同时刻具备不同的形态...
作者: 18600071691    时间: 2016-10-28 22:45
用的多了的 可以把 父类写到 一个方法李里   调用他们共有的属性和方法  方便
作者: 黑马初学者    时间: 2016-10-28 23:04
可以可以,加油
作者: zhangyuren    时间: 2016-10-28 23:05
你直接创建一个子类对象的思路是对的.

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

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

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

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

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

代码空间完全是在浪费.
作者: zhangyuren    时间: 2016-10-28 23:06
你现在有疑惑,只是因为你才刚开始,后面的知识你还没学到,还不知道多态的价值有多好.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2