黑马程序员技术交流社区

标题: 关于多态 [打印本页]

作者: quanhui    时间: 2011-11-17 12:08
标题: 关于多态
我知道重载是一种多态的表现,那么重写算多态么? 还有别的什么也算是多态么?
作者: 小王同志    时间: 2011-11-17 13:44
我的理解:
多态性就是方法重载和重写
overloading 和 overriding

oop中多态性一般有两方面,
一是纵向的,就是父类和子类之间的多态,子类重写了父类的同名同参的方法,通过父类对象的引用或者指针调用子类对象的方法。
另一个就是在类中重载方法,通过对象的引用或指针调用同一个方法名称,通过不同的参数有不同的实现,暂且成为横向的多态吧。

以上是我的理解,如有不对,请高手纠正。

其实我觉得这个理论意义比较大,但是在实际应用中似乎没多大意义。
作者: 後天__牛永志    时间: 2011-11-17 13:52
多态存在于继承中。Fu f = new Zi();当父类的引用指向了,子类的对象时,就出现了多态,多态就是事物的多种形态。 动物 d = new 猫(); 猫既是动物,也是猫,猫具有动物的共同属性和方法,也具有猫所特有的属性和方法。
而重写,是存在于继承中的,子类继承父类后,子类就可以复写父类中的方法了。(override)
overwrite,和继承,多态,没有关系的,不要把他们搞混了。
作者: quanhui    时间: 2011-11-17 14:02
潜王伟 发表于 2011-11-17 13:44
我的理解:
多态性就是方法重载和重写
overloading 和 overriding

实际中会有用的,面试
作者: 小王同志    时间: 2011-11-17 14:06
quanhui 发表于 2011-11-17 14:02
实际中会有用的,面试

也对,面试是会用到
作者: 任俊杰    时间: 2011-11-17 16:45
我理解为重载,重写加继承。这三个结合才能很好的表现出多态。




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