oc63--协议@protocol1

简介:
复制代码
//
//  SportProtocol.h
//  day17
#import <Foundation/Foundation.h>

@protocol SportProtocol <NSObject>
// 方法声明列表
- (void)playFootball;
- (void)playBasketball;
- (void)playBaseball;
@end
复制代码
复制代码
//
//  Person.h
//  day17

#import <Foundation/Foundation.h>
#import "SportProtocol.h"  //相当于拷贝了一份方法的声明
@interface Person : NSObject <SportProtocol>  //继承了协议,就有了协议里面所有方法的声明。继承实类默认就有实现,继承协议没有实现,
@end
复制代码
复制代码
//
//  Person.m
//  day17

#import "Person.h"

@implementation Person

- (void)playFootball
{
    NSLog(@"%s", __func__);
}

- (void)playBasketball
{
    NSLog(@"%s", __func__);
}

- (void)playBaseball
{
    NSLog(@"%s", __func__);
}
@end
复制代码
复制代码
//
//  main.m
//  day17

#import <Foundation/Foundation.h>
#import "Person.h"
#import "Student.h"
#import "Teacher.h"

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

    Person *p = [Person new];
    [p playFootball];
    [p playBasketball];
    [p playBaseball];
    
    Student *stu = [Student new];
    [stu playBaseball];
    
    
    Teacher *tea = [Teacher new];
    [tea playBasketball];
    
    return 0;
}
复制代码
相关文章
|
6月前
|
存储 JSON Java
Protocol
【7月更文挑战第20天】
72 1
|
8月前
protocol协议处理
protocol协议
77 0
UE Http Server Plug -in description
UE Http Server Plug -in description
110 0
|
分布式数据库 Hbase
thriftpy2.protocol.exc.TProtocolException: No protocol version header
thriftpy2.protocol.exc.TProtocolException: No protocol version header
379 0
thriftpy2.protocol.exc.TProtocolException: No protocol version header
Object C学习笔记15-协议(protocol)
  在.NET中有接口的概念,接口主要用于定义规范,定义一个接口关键字使用interface。而在Object C 中@interface是用于定义一个类的,这个和.NET中有点差别。在Object C中有一个协议(protocol) 的概念,这个和.NET中的interface类似。
1162 0
|
Java Go Swift
Swift里的protocol--协议
我感觉它和java或go里的接口,差不多一个意思吧。
1432 0