OC之多态

2018-03-16  本文已影响0人  IThai

OC之多态:

多态是什么?一个类的多种形态。你可以认为就是孙悟空和他的分身。
为什么要 分身,一个人做不到啊。

多态,就是继承一个父类,覆写父类的旧方法,当然新写的这个类,也可以加些新方法。
继续上边假设的情景:
BBview有俩方法,-(void)didScal; -(void)didOvertrun;
新加俩类,
Aview,覆写方法(-(void)didScal;)。-(void)didAScal;
Bview,覆写方法(-(void)didOvertrun;)。-(void)didBOverTrun;
添加新方法。-(void)3dtransform;
场景应用:
原来的使用:(之前项目中,某控制器下,使用旧的BBview,实现缩放,翻转)
[[BBview class] didScal];
[[BBview class] didOvertrun];
现在,你又需要一个view来实现只能上下方向放大缩小:
BBview *aView = [Aview new];
[Aview didAScal];
然后,你还需要一个view来实现即能点击翻转,还能3d折叠。
BBview bView = [Bview new];
[bView didBOverTrun];
[(Bview
)bView 3dtransform];//此处需要注意,必需强转类型,因为,在父类中,没有3dtransform这个方法。

OK,至此,多态的情况大致明了。
现在,你既可以保证旧项目不改动,又可以满足新的需求。是不是就像在版本迭代呢?是的,多态就好像是在帮你的代码进行迭代一样,即扩展了你之前的类的方法,也保证了旧的存在。让你原本就已千疮百孔的代码还能继续匍匐前行。没有错,这也是多态的优点之一哦。

上一篇下一篇

猜你喜欢

热点阅读