------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
还记得一开始学面向过程的时候,我们没有太在意什么扩展性之类的问题,后来从面向过程过渡到面向对象的时候,一提到面向对象就老有一种升级的感觉,立马冒出几个词“封装、继承、多态”,再后来提到多态就想到了函数重载,或者从字面上理解即是一种事物多种表现形态,觉得理解到这里就差不多了。
直到今天,听了毕老师的课之后才知道多态的另一个更为重要的表现形式,原来在之前的学习中我经常遇到,也用过,但是一直不清楚它的真身,比如在《大话设计模式》,在开发收费系统等时候,我经常看见代码里面有这么一种形式,如下:接口里面定义了几个方法,在类duotai中有个方法的参数用的是接口it的类型,然后在客户端里面创建一个类duotai的对象之后调用它的这个方法,把实现接口的两个类A和B放进去,这样就可以使用接口中定义的方法了,也即类A和B 的方法。
这种设计方法看起来挺巧妙的,事实上确实很巧妙啊!但是里面却利用了我们经常挂在嘴边的“多态”!这就有疑问了,多态在哪?
我们回头想想多态,多态即是一种事物多种形态,ok,我们看看为什么duotai这个类里面的方法的参数用的是接口类型的,但是我们在客户端翻进去的参数却是实现接口it的类A和B,ok,就是这里,之所以我们能把A和B放进去,就是因为多态啊,实际上你可以把实现接口的类看作是继承接口的类,只不过接口是抽象的而已。
所以我们定义了接口,使用实现接口的类即可同接口类型而看待。
自认为理解的还是不够,路过的大神还请指教!