黑马程序员技术交流社区

标题: 多态总结 [打印本页]

作者: liqian    时间: 2012-4-18 10:09
标题: 多态总结
1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2.可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3.接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。例如,假设超类Shape规定了两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,可以完善或者覆盖这两个接口方法。
4.灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
       值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装载和地址引用,或称动态绑定。但在Java中,除了final类和一定条件下的final方法外,所有方法都由JVM在运行期间进行动态绑定。
作者: 一生一世    时间: 2012-4-27 18:35
总结的很好,不错
作者: 孙天    时间: 2012-4-27 21:13
我加一点,多态在成员函数和静态函数上的特点:
1,成员变量:当子父类中出现了相同的非私有成员变量时,
在多态调研中的特点:
在编译时期:参考引用型变量所属的类中是否调用成员型,如果有编译通过否则失败变量,
在运行时期:参考的还是引用型变量所属的类中的成员变量
简单说:对于成员变量,无论编译还是运行,都参考引用型变量的所属的类中的成员变量
更简单地说,成员变量看=的左边
2,成员函数:
当子父类中出现一模一样的函数时,
在多态调用中,
编译时期:参考的是引用型变量的所属类中是否有调用的成员函数
运行时期:参考的是对象所属的类中是否有调用的成员函数
原因是:编译时期应该参考的是父类,而运行时,参考子类,因为在成员函数上有一个特点,覆盖
简单一句:队成员函数,编译看左边,运行看右边
3,静态函数
在多态调用中的特点:
编译时期:参考的引用型变量所属的类中是否调用的静态函数,若果有编译通过,否则失败
运行时期:参考的还是引用型变量所属的类中的静态函数
作者: 熊玖帅    时间: 2012-5-28 12:01
好,不错,视频听得很认真




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