协议

协议是用于定义类或多个类应该遵守的规范

案例:

#import <Foundation/Foundation.h>


@protocol Output

@required//必须实现

-(void)output;

@optional//可选择实现

-(void)addData:(NSString*)msg;

@end


#import <Foundation/Foundation.h>


@protocol Productable

-(NSDate*)getProductableTime;

@end


#import <Foundation/Foundation.h>

#import "Output.h"

#import "Productable.h"


@protocol Printable <Output,Productable>

-(NSString*)printColor;

@end


#import <Foundation/Foundation.h>

#import "Printable.h"


@interface Printer : NSObject<Printable>


@end



#import "Printer.h"


@implementation Printer


-(void)addData:(NSString*)msg {

    NSLog(@"添加数据:%@",msg);

}


- (void)output {

    NSLog(@"输出数据");

}


- (NSDate *)getProductableTime {

    return [NSDate date];

}


- (NSString *)printColor {

    return @"返回了内容";

}


@end


#import <Foundation/Foundation.h>

#import "Printer.h"

#import "Printable.h"

#import "Productable.h"


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        Printer* printer = [[Printer alloc]init];

        [printer addData:@"呵呵呵"];

        //通过协议来定义变量

        NSObject<Productable>* p=[[Printer alloc]init];

        NSLog(@"%@",p.getProductableTime);

        //通过协议来定义变量

        id<Output,Printable> outs =[[Printer alloc]init];

        [outs addData:@"哈哈哈"];

        [outs output];

       NSLog(@"%@",[outs printColor]);

    }

    return 0;

}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值