黑马程序员技术交流社区

标题: OC协议 [打印本页]

作者: yushimin763    时间: 2015-8-14 18:47
标题: OC协议
协议的定义:
@protocol 协议名称
//方法声明列表
@end;
协议的使用:
@protocol 类名<协议名称1,协议名称2...>
@end;
在默认情况下,只要是协议里面声明过的方法,遵守此协议的类就必须要实现协议里的声明的所有方法,否则系统就会发出警告。一个类可以遵守多个协议,而在oc中类的继承只是单一继承。
oc提供两个关键字@required (后面的方法在遵守协议的类里面必须实现)和 @optional (可以实现也可以不实现)没有关键字时候,系统默认是@required
例子:
#import
@protocol personProtocol //定义一个协议
@required
- (void)eat;//必须实现的方法
@optional
- (void)run;//选择实现的方法
@end

@interface Person:NSObject
@end
@implementation Person
- (void)eat{
NSLog(@"人在吃饭");
}
@end

int main(int argc, const char *argv[] ){
   @autoreleasepool{
    Person * p = [Person new];
    [p eat];//调用协议中必须要实现的方法
}
return 0;
}


程序运行结果为:人在吃饭


作者: zxm-it    时间: 2015-8-14 21:53
经典入门程序




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2