#iOS抽象类

作者: 践行者 | 来源:发表于2016-05-05 15:57 被阅读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

相关文章

  • iOS多线程-NSOperation实践

    推荐文章 iOS多线程-NSThread实践 iOS多线程-GCD实践 NSOperation只是一个抽象类,所以...

  • #iOS抽象类

    iOS抽象类 思维点 Objective-C 没有抽象类只是指语言的语法构造上没有C++/Java那样专门的abs...

  • iOS抽象类

    OC实现抽象类 Objective-C 没有抽象类,要实现 abstract class 定义,需要 subcla...

  • IOS 动画案例二

    1、CAAnimation是IOS QuartzCore框架下一个抽象类,遵循了CAMediaTiming协议和C...

  • UIGestureRecognizer

    UIGestureRecognizer基类是一个抽象类,我们主要是使用它的子类(名字包含链接,可以点击跳到ios ...

  • js.pattern -h 模板方法模式

    基于复用技术、抽象类-->继承抽象类 创建抽象类 实现抽象类

  • Dart中的抽象类 多态 以及接口

    抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。 1、抽象类...

  • NSOperation

    概述 iOS并发编程中,把每个并发任务定义为一个Operation。NSOperation是一个抽象类,无法直接使...

  • Dart 抽象类 多态 和接口

    抽象类 Dart中的抽象类:Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。抽象类通过a...

  • abstract关键字

    抽象类 PHP5 支持抽象类和抽象方法。抽象类不能被实例化,必须先继承该抽象类,然后实例化该抽象类的子类。抽象类中...

网友评论

  • FengxinLi:请问下 ios中怎么判读是抽象类呢? 比如NSOperation 很多博客说的是抽象类。但是这个类还是可以实例化的呢 NSOperation *operation = [[NSOperation alloc]init]; 这样也并没有报错

本文标题:#iOS抽象类

本文链接:https://www.haomeiwen.com/subject/sgpdrttx.html