Protocol:
@protocol SportProtocol <NSObject>
@property (nonatomic,copy) NSString *sportType;
- (void)playFootball;
- (void)playBasketball;
- (void)run;
@end
实现类:
#import <Foundation/Foundation.h>
#import "SportProtocol.h"
@interface Person : NSObject<SportProtocol>
@end
#import "Person.h"
@implementation Person
@synthesize sportType=_sportType;
- (void)readSportType{
NSLog(@"%@",_sportType);
}
@end
上面方法中主要用到了@synthesize sportType=_sportType, 意思是说,sportType 属性为 _sportType 成员变量合成访问器方法。
其实针对protocol里面定义的属性,有两种方式:
方式一:在.m实现类中添加@synthesize sportType;
方式二:在.m实现文件中添加合成sportType属性的成员变量_sportType和对应的getter和setter方法 如上操作。
补充
协议和继承的区别:
-继承之后默认就有实现,而Protocol只有声明没有实现
-相同类型的类可以使用继承,但是不同类型的类只能使用protocol