#iOS抽象类
2016-05-05 本文已影响3277人
践行者
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)。
首先看下抽象实现细节:
抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。
简单点说:你不能实例化一个抽象类。然而,我们可以尝试复制该方案在Objective-C中采用一些技巧,要确保不能实例化你的父类。
在OC中如何去实现抽象类
1.如下图定义一个MyObject
3D1FB32F-B025-4B37-B0A1-EC53E75279B1.jpg
内部的具体实现
screenshot.png