Objective-C 学习四 Protocal 与 Category
来源:互联网 发布:树莓派可以装windows吗 编辑:程序博客网 时间:2024/04/29 18:17
protocal 协议:
协议事实上是一组方法列表,不依特定的类。使用协议可以使不同的类共享相同的消息。
协议的定义:
@protocal 协议名
方法声明; 默认的情况下,这个方法是必须要被实现的
@optional 方法声明; 这个是可选择实现的方法
@required 方法声明; 必须实现的方法
@end
协议在类中的声明:
@interface 类名:父类名<协议名>
xxxxx
@end
有的网友说协议很像Java中的接口,也有的人说是Java中的接口与泛型的结合体。好吧,不熟悉Protocal呢,但是个人感觉更倾向第一种说法。
但protocal与Java 中的interface不同在于方法不是必须实现的。
参考(看一下协议实现的不同方式):http://blog.csdn.net/a352193394/article/details/8100248
Category 分类:
重点参考:http://bbs.itheima.com/thread-117162-1-1.html
Category依赖具体的类。Category的作用就是对已有的类的扩展,就像在一个类上面外挂一个模块(让我想起了美国军舰模块化设计、生产,果然这些思想都是相通的)。
Category的声明:
@interface 类名(分类名)
新增方法的声明
@end
定义方法
@implementation 类名(分类名)
新增方法的定义{
xxxxxx
}
@end
调用的时候与类中方法调用一样。
Category注意点:
1 分类只能增加方法,不能增加成员变量;
2 在分类方法的实现中可以访问原来类中的成员变量;
3 分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(所以我们最好不要在Category中重载);
4 方法调用优先级:匪类->原来的类->父类;
5 一个类可以定义多个Category,但,如果不听的Category中存在相同的方法,编译器无法决定使用哪个Category;
6 Category是可以被继承的;
- Objective-C 学习四 Protocal 与 Category
- 【Objective-C学习-6】Category
- Objective-C - category学习笔记
- 学习笔记(objective-c)-类别(category)
- ios学习路线—Objective-C(Category)
- Objective-c中@interface、@implementation、@protocal
- Objective-c中@interface、@implementation、@protocal
- Objective-c中@interface、@implementation、@protocal、id
- Objective-c中@interface、@implementation、@protocal
- Objective-c中@interface、@implementation、@protocal
- objective-C中的接口与泛型("非正式协议(interface)"与"正式协议(protocal)")
- Objective C基础(四)---Category、Extension、Protocol
- ObjC(Objective-C)中的"非正式协议(interface)"与"正式协议(protocal)"
- ObjC(Objective-C)中的"非正式协议(interface)"与"正式协议(protocal)"
- Objective-C使用Category
- Category 类别 -Objective-C
- Category 类别 -Objective-C
- Objective-C分类 (category)
- Android USER 版本与ENG 版本的差异--MTK官方解释
- Wellner 1993快速自适应的图像二值化方法的提高 (Derek Bradley and Gerhard Roth 2007)
- 【日常小记】linux中强大且常用命令:find、grep
- jqueryui实现百度推荐搜索功能
- OpenCV OTSU大津法
- Objective-C 学习四 Protocal 与 Category
- C语言笔记之条件编译
- @property的用法
- ADT(二叉查找树)和AVL(平衡二叉树)总结
- SODBASE CEP学习(一):SODBASE CEP简介
- 第8周项目1-实现复数类中的运算符重载(友元函数)
- 设计模式学习-Adapter Pattern
- 第八周项目 一
- Matlab的regionprops详解