代码改变世界

协议

2015-12-12 16:13  AB小博客  阅读(143)  评论(0)    收藏  举报

@required:这个表示这个方法是其他类必须实现的,也是默认的值


@optional:这个表示这个方法对于其他类实现是可选的




//
// Animal.h // 协议 #import <Foundation/Foundation.h> 定义了一个协议 @protocol Animal <NSObject> @required //必须实现的方法 -(void)eat; -(void)sleep; @optional //选择实现的方法
-(void)play; @end
//
//  Dog.h
//  协议

#import <Foundation/Foundation.h>
#import "Animal.h"
@interface Dog : NSObject<Animal>

@end
//
//  Audio.h
//  协议


#import <Foundation/Foundation.h>

@protocol Audio <NSObject>
-(void)playMusic;

@end

//
//  Video.h
//  协议


#import <Foundation/Foundation.h>

@protocol Video <NSObject>
-(void)playVideo;
@end
//
//  Phone.h
//  协议


#import <Foundation/Foundation.h>

@protocol Phone <NSObject>
-(void)call;
@end
//
//  Mobile.h
//  协议

#import <Foundation/Foundation.h>
#import "Audio.h"
#import "Video.h"
#import "Phone.h"
@interface Mobile : NSObject<Phone,Audio,Video>

@end

//  Mobile.m
//  协议

#import "Mobile.h"

@implementation Mobile
-(void)call{
    NSLog(@"打电话");
}
-(void)playMusic{
    NSLog(@"播放音乐");
    
}
-(void)playVideo{
    NSLog(@"播放视频");
    
}
@end