多态
前言
上周老师讲课再次讲到了多态,经过课下的消化,又有一些新的收获。学习多态还是要从基本的概念上入手,明确基本概念,下面来学习一下基本概念并与代码进行对应。通过编写代码也能够很好的检验是否学会了多态。
概念
多态是指为不同数据类型的实体提供统一的接口,同一操作作用于不同的对象,可以有不同的解释产生不同的执行结果.
这是对多态的一种解释。整体上看有点复杂不知道怎么入手,我们先用计算机思维逐层拆解。先拆为两部分,第一部分:为不同数据类型的实体提供统一的接口和第二部:同一操作作用于不同的对象,可以有不同的解释产生不同的执行结果.
我们先来看前一部分,什么是不同类型的实体,什么统一的接口。
我们先对应到代码中:
在这一张图的代码中,不同的实体类型是用方框圈住他们表示不同的运算工厂,分别表示加法工厂、减法工厂、乘法工厂、除法工厂。
统一的接口体现在用椭圆框住的部分,我们可以看出他们都实现了统一的接口也就是CreateOperation()方法。
我们再来看第二部分:同一操作作用于不同的对象,可以有不同的解释产生不同的执行结果.
什么是同一操作,不同对象,什么是不同的解释 产生不同的执行结果
首先我们先来看第一张图,从第一张图我们可以看到,同一操作是都调用了CreateOpertion()方法,不同对象是传给CreateOpertion是加法对象 和减法对象,不同的执行结果,来看最后一张图。getresult()返回的值不一样。
总结
觉得博主解释的有问题,欢迎进行评论或者是私信,博主还是程序小白,如有解释有误请直接指出,一起进步。