protocol(协议)的一些要点

时间:2023-03-08 15:36:02

//遵循协议的变量声明

//要求你创建的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