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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© as12510 中级黑马   /  2015-5-3 16:33  /  692 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学完面向对象之后  ,继承 可以理解 ,接口也可以理解。
就是多态 不太理解,会用,但不知道为什么要这样做。或者说不知道这样用的好处是什么。
教材写的是:多态可以使程序简洁,写一个方法可以调用多个方法。
但是:  课件里面讲的不是这个意思。
谁能具体的从原理上说下什么是多态。

7 个回复

倒序浏览
多态就是父类引用指向子类对象,在实际开发中自认为很有用的,比如一个类有多个子类,这些子类都拥有show方法,但是都有各自不同的实现,这时候你如果使用每个子类的show方法,就得分别new出每个子类的对象,再调用他们各自的show方法,有几个子类就得new多少个对象,但是用多态的话,你就可以将父类引用指向子类对象,只用父类引用.show()调用一次就可以,来哪个子类就调用哪个子类的show,非常方便,提高了代码的扩展性
回复 使用道具 举报
哔哩哔哩 发表于 2015-5-3 21:30
多态就是父类引用指向子类对象,在实际开发中自认为很有用的,比如一个类有多个子类,这些子类都拥有show方 ...

感觉多态和接口用的比较多。
回复 使用道具 举报
二楼说的有道理,我也在迷糊这个问题
回复 使用道具 举报
哔哩哔哩 发表于 2015-5-3 21:30
多态就是父类引用指向子类对象,在实际开发中自认为很有用的,比如一个类有多个子类,这些子类都拥有show方 ...

但是使用的时候 一般还不是这么写:
例如  Animail a = new Dog();
                    a.show()
                 a = new Cat();
                      a.show();
                 a = new Pig();
                    a.show();
                  ...
其实感觉和不new子类写的代码是一样的。无非就是省内存(变量少),但是总感觉这样想  不是多态最终的好处。因为 多态是一种现象吧?
回复 使用道具 举报
多态用的地方挺多,学习下
回复 使用道具 举报
as12510 发表于 2015-5-3 23:58
但是使用的时候 一般还不是这么写:
例如  Animail a = new Dog();
                    a.show()

在执行时,对象是不确定类型,你就需要用父类类型作为形参接收子类类型对象,对父类引用做的所有操作都会根据实际接收的实参对象而表现出不同的行为,这是多态的精髓
回复 使用道具 举报
毕老师的视频里面讲的很详细吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马