iOS的协议@protocol和接口@interface

@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
----------------------

参考:
https://www.jianshu.com/p/2c67eebfaa3d

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容