代码改变世界

protocol(协议)的一些要点

2016-12-14 10:37  supper_Ho  阅读(214)  评论(0编辑  收藏  举报

   //遵循协议的变量声明

        //要求你创建的PErson对象必须是遵循了 PersonProtocol 

        Person<PersonProtocol> * p2 = [[Person alloc] init];

   

        [p2 walk];

 

        id<PersonProtocol> obj  = [[Person alloc] init];

 

 

 

 

//@protocol 代表一个协议

//谁遵循协议,谁就要实现协议中定义的方法

//协议文件本身只是提供方法的声明,并不实现方法

//协议本身也可以遵循其他协议,NSObject是一个基础协议,协议也可以同时遵循多个其他协议

@protocol LiuMangProtocol <NSObject,StudentProtocol>

 

//协议的条文,就是方法

@required//必须实现,默认都是必须实现的

- (void)eat;

- (void)drink;

 

@optional //可选实现

- (void)gamble;

- (void)lie;

 

 

#import "Person.h"

 

//不需要许多的类去遵守的协议,也就是一个类特有的协议我们可以把它直接在这个类的.h文件中直接声明出来

@protocol MiddleStudentProtocol <NSObject>

 

- (void)skipClass;

 

@end

 

//父类遵循了那些协议,子类同样遵循那些协议

@interface MiddleStudent : Person <MiddleStudentProtocol>

 

@end