晕蔡,89程序猿,生活在IT丛林里3年了,目前在iOS部落中同顶一片蓝天欣赏另外的世界。
自我签名:
儒为表,道为骨,佛为心;
大度观世界,作如是观;
应无所往,而生其心。
Objective-C 没有抽象类只是指语言的语法构造上没有C++/Java那样专门的abstract class定义,这并不妨碍你在用Objective-C写程序的时候使用"abstract class"这一通用的OOP概念,即类的部分实现需要subclass来完成。
比如:NSString,当你使用他的时候,实际你在使用其他类型,不是NSString ,但是返回的类型 is kind of NSString.(这也解释了为什么判断id object是不是NSString通过isKindOf: 而不是isMemberof)。<br/>
首先看下抽象实现细节:<br/>
抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。<br/>
简单点说:你不能实例化一个抽象类。然而,我们可以尝试复制该方案在Objective-C中采用一些技巧,要确保不能实例化你的父类。<br/>
1.如下图定义一个MyObject
内部具体实现
⬇️
微信扫一扫
关注该公众号