面向对象的多态,我们先用生活中的多态来理解。大学的校园四月,是社团活动最紧忙的一个月。届时,学校的相关管理部门会对各社团上交的“社团活动策划案”进行审批后下发。以我曾参加的一个话剧社作为例子,社长接到审批的文书后,会对整个社团组织内部人员进行职权分工,编剧部、后勤部、外联部、秘书部、文艺部所有部门各有分工,分头积极准备工作,大家为了完成共同一部话剧热火朝天地干了起来。
这里审批的“社团活动策划案”同意办活动(一条命令),接到审批文书,来到“社长”判断,在各部做着不同的准备(各自实现不同的操作)。这就是多态。
在话剧表演的当天,主持人宣布晚会正式开始,灯光组——追光、剧务组——搬道具、演员组——上台表演,各自在各自的位置上发光发热。所有的精彩在这样协调、有序的配合下完美进行。(你可以把眼光放到其中任何一个部分,去关注;也可以整体概览,所有人的活动)
下面用两张表更清晰:
(说实话,上面的内容原本想用代码实现一下的,只可惜,弄了很长时间,现在能力有限,后期补)
上面都是体现的多态,如果用面向对象的思想看生活,身边的例子比比皆是。
在面向对象的多态性运用在什么地方呢?
1.方法
(1)重载(编译时多态)
(2)虚方法(运行时多态)
(3)抽象方法(运行时多态)
(4)委托
2.类-继承
3.接口-继承(相同性)
总的说来,多态是应对同一信息,所做出不同反应的表现。
原文地址:http://blog.csdn.net/wangqingbo0829/article/details/35590365