Objective-C计算机技术一锅炖晕菜技术集合weekly

#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
上一篇下一篇

猜你喜欢

热点阅读