LHF Objective-C语法(8)协议

Printing.h@protocol Printing1 -(void)print1; @end @protocol Printing2 -(void) print2; @end @protocol Printing3<Printing2> -(void)print3; @end

1、objc里的协议与java中的接口是同一个东西

2、协议可以遵从协议

2、说法:类Fraction遵从了Printing1、Printing3   

//Fraction.h================================ #import <Foundation/Foundation.h> #import "Printing.h" @interface Fracion : NSObject<Printing1,Printing3>{ int numerator; int denominator; } -(Fraction*) initWithNumerator:(int) n denominator:(int)d; -(void) setNumerator:(int) n; -(void) setDenominator:(int) d; -(int) numerator; -(int) denominator; @end //Fraction.m================================ #import "Fraction.h" @implementation Fraction -(Fraction*) initWithNumerator:(int) n denominator:(int)d{ self = [super init]; if(self){ [self setNumerator:n]; [self setDenominator:d]; } } -(void) setNumerator:(int) n{ numerator = n; } -(void) setDenominator:(int) d{ denominator = d; } -(int) numerator{ return numerator; } -(int) denominator{ return denominator; } -(void)print1{ NSLog(@"1:%d/%d",numerator,denominator); } -(void)print2{ NSLog(@"2:%d/%d",numerator,denominator); } -(void)print3{ NSLog(@"3:%d/%d",numerator,denominator); }main.m

//main.m================ Fraction *frac = [[Fraction alloc] initWithNumerator:3 denominator:5]; <Printing1> p1 = frac; //id<Printing1> p1 = frac; [p1 print1]; id<Printing1,Printing2,Printing3> p2 = frac; [p2 print2]; [p2 print3]; //用于判断对象是否遵从某个协议 if([frac conformsToProtocol:@protocol(Printing1)] &&([frac conformsToProtocol:@protocol(Printing2)] &&([frac conformsToProtocol:@protocol(Printing3)]){ NSLog(@"YES"); }else{ NSLog(@"NO"); } [frac release]; return 0;

转载于:https://www.cnblogs.com/landebug/archive/2012/02/14/2416670.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值