iOS的协议@protocol和接口@interface
2019-06-25 本文已影响0人
小黑Unity_齐xc
@protocol 类似于java中的interface
1、声明方法,不实现方法;
2、定义属性@property,仅是getter setter形式的声明
@protocol 语法:
@protocol SportProtocol <NSObject>
- (void)playFootball;
- (void)playBasketball;
- (void)run;
@end
@protocol关键词
@required:这个方法必须实现,默认就是required(若不实现,编译会报错)
@optional:这个方法不一定要实现
示例:
@protocol SportProtocol <NSObject>
@required
- (void)playFootball;
- (void)playBasketball;
@optional
- (void)run;
- (void)readSportType;
@end
@interface类似于java的类声明
1、使用协议的类,必须实现协议中的方法(与java的实现类似)
2、一个类可以遵循1个或多个协议(与java的实现类似)
@interface语法:
#import <Foundation/Foundation.h>
#import "SportProtocol.h"
@interface Person : NSObject<SportProtocol>
@end
@interface集成+协议
#import <Foundation/Foundation.h>
#import "SportProtocol.h"
@interface Person : NSObject<SportProtocol>
@end
----------------------
#import "Person.h"
@interface Student : Person
@end
----------------------