FJBadManDelegate.h
#import <Foundation/Foundation.h>
#import <Foundation/Foundation.h>
//@protocol 是声明协议的关键字
//<>是遵守协议的语法:":"是继承的语法;<>中就是所遵守的协议的协议名
//NSObject在这里是协议,所有的协议必须遵守NSObject协议,他是基协议
//协议的语法格式
//@protocol 协议名 <NSObject>
@protocol BadManDelegate <NSObject>
//在这里写协议内容(一系列的方法也就是规定和条款)
//协议方法只有声明没有实现
- (void) eat;
- (void) drink;
- (void) lie;
FJGentleManDelegate.h
#import <Foundation/Foundation.h>
@protocol FJGentleManDelegate < NSObject>
- (void) goforGirl;
@end
FJPerson.h
#import <Foundation/Foundation.h>
#import "FJBadManDelegate.h"
#import "FJGentleManDelegate.h"
@interface FJPerson : NSObject <BadManDelegate,FJGentleManDelegate>
@end
@interface FJStudent : NSObject <BadManDelegate>
- (void) study;
@end
FJPerson.m
#import "FJPerson.h"
@implementation FJPerson
- (void)eat{
NSLog(@"流氓吃完就跑~");
}
- (void)drink{
NSLog(@"流氓喝完打人~");
}
- (void)lie{
NSLog(@"流氓会骗人~");
}
- (void)goforGirl{
NSLog(@"窈窕淑女,君子好逑");
}
@end
@implementation FJStudent
- (void)study{
NSLog(@"学生要学习~");
}
- (void)eat{
NSLog(@"学生不可以吃东西");
}
- (void)drink{
NSLog(@"学生不可以喝酒");
}
- (void)lie{
NSLog(@"学生不可以骗人");
}
@end
main.m
//协议:protocol和生活中的协议基本是一样的比如就业协议
//离婚协议(哈哈~) 劳动合同,保密协议等
//协议的特点:(一系列的规定)
//在OC中主要是看甲方对乙方制定的规定
//=====基本概念=======
//委托:(制定协议)
//代理:(遵守协议)
//协议:一系列的条款和规定(委托制定和代理遵守)
//======主要要求=========
//遵守协议就要做到协议规定上的内容:遵守协议就要做什么样的对象、
//======协议特点========
//1。一个类可以遵守多个协议(遵守协议必须实现协议方法)
//2.同一个协议可以被多个类遵守(不同的类协议方法有不同的实现)
#import <Foundation/Foundation.h>
#import "FJPerson.h"
#import "FJStudentDelegate.m"
int main(int argc, const char * argv[]) {
@autoreleasepool {
FJPerson *person = [[FJPerson alloc] init];
[person eat];
[person drink];
[person lie];
[person goforGirl];
FJStudent *stu = [[FJStudent alloc]init];
[stu study];
[stu eat];
[stu drink];
[stu lie];
}
return 0;
}