Protocol协议:
如何声明一个协议
File type 选择Protocol
如何让一个类遵守一个协议:在.h文件中的继承类后面<协议名称>
@interface Person : NSObject <SprotProtocol>
协议和继承的区别:
-继承之后默认就有实现,而Protocol只有声明没有实现
-相同类型的类可以使用继承,但是不同类型的类只能使用protocol
例:男人女人都可以走可以跑,走和跑的方法继承人这个类。狗,猫这些不是人这个类,但是猫和狗也想有走和跑的方法这时候就可以 使用protocol
-protocol可以用于存储方法的声明,可以将多个类中的共同方法抽取出来,以后让类遵守协议即可
协议的注意点
- Protocol只能声明方法,不能声明属性
- 父类遵守了谋个协议,子类也会遵守父类的协议
- oc中一个类可以遵守1个或多个协议,并且oc只有一个父类
- oc中的协议可以同时遵守其他协议,只要一个协议遵守了其他协议,那么这个协议就会自动包含其他协议的声明@protocol StudyProtocol <SportProtocol>
- @required关键字 :方法必须要实现(若不实现,编译器会报错)
- @optional关键字 :方法不一定要实现
- 默认情况下没有使用任何关键字修饰协议中的方法,那么该方法默认是required的
#import <Foundation/Foundation.h>
#import "SportProtocol.h"
#import "StudyProtocol.h"
@interface Person : NSObject<StudyProtocol,SportProtocol>
-(void)playFootball;
-(void)study;