cover_image

在iOS中实现抽象类

晕蔡 一格兔 2016年05月05日 08:07

晕蔡,89程序猿,生活在IT丛林里3年了,目前在iOS部落中同顶一片蓝天欣赏另外的世界。

自我签名:

                              儒为表,道为骨,佛为心;

                           大度观世界,作如是观;

                            应无所往,而生其心。




思维点

       Objective-C 没有抽象类只是指语言的语法构造上没有C++/Java那样专门的abstract class定义,这并不妨碍你在用Objective-C写程序的时候使用"abstract class"这一通用的OOP概念,即类的部分实现需要subclass来完成。

OC中抽象类的应用

     比如:NSString,当你使用他的时候,实际你在使用其他类型,不是NSString ,但是返回的类型 is kind of NSString.(这也解释了为什么判断id object是不是NSString通过isKindOf: 而不是isMemberof)。<br/>

首先看下抽象实现细节:<br/>
         抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。<br/>

简单点说:你不能实例化一个抽象类。然而,我们可以尝试复制该方案在Objective-C中采用一些技巧,要确保不能实例化你的父类。<br/>

在OC中如何去实现抽象类

1.如下图定义一个MyObject

图片

内部具体实现
图片


⬇️

图片




微信扫一扫
关注该公众号

继续滑动看下一个
一格兔
向上滑动看下一个