概念:类似C++的接口,如果要实现对应的协议就要对协议的接口进行实现
@required:要求必须实现
@optional:可以选择性实现
1. 声明
// 声明一个协议
@protocol StudentProtocol <NSObject>
@required
-(void)readbook;
-(void)doHomework;
@end
// 声明一个类实现协议
@interface Person : NSObject<StudentProtocol>
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *sex;
-(void)eat;
-(void)walk;
//override
-(void)readbook;
//override
-(void)doHomework;
@end
2. 定义
@implementation Person
-(void)eat{
NSLog(@"Person Eat!");
}
-(void)walk{
NSLog(@"Person Walk!");
}
-(void)readbook{
NSLog(@"Person readbook!");
}
-(void)doHomework{
NSLog(@"Person doHomework!");
}
@end
3. 使用
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [[Person alloc]init];
[p readbook];
[p eat];
[p walk];
[p doHomework];
}
return 0;
}
4. 扩展
网友评论