OC--———协议protocol的基本使用

来源:互联网 发布:怎样网购淘宝怎样付款 编辑:程序博客网 时间:2024/05/16 23:40

1.协议:protocol

    作用:1.专门用来声明一堆方法(不能声明属性,也不能实现方法,只能有用来方法的声明)

        2.如果某个类遵守了这个协议,就相当于拥有了这个协议红的所有的方法声明,而不用自己定义

 2. 协议申明:@protocol 协议名称<NSObject>

        方法的声明;

        @end

  3  在协议中只能声明方法,协议的作用也是专门用来写方法声明的

 

 4.类遵守协议 

    协议就是写方法声明的,就是有用来被准守的,

    如果想要让一个类,拥有协议中的定义的所有的方法声明,那么就让这个类遵守这个协议,类只要遵守一个协议,那么这个类就拥有这些协议中的所有的方法的声明了

    @interface 类名:父类<协议名称>

    @end

    :表示继承

    <>表示遵守的协议

    

   当一个类,遵守了一个协议,那么就相当于这个类拥有了协议中定义的所有的方法的声明,这个类只有拥有了这个协议的方法声明而已,没有实现,所以----这个类,就应该实现协议中的方法。

 

   如果累不实现协议中的方法,其实也不会报错,但是会有警告,但是当创建对象,来调用这个没有实现的协议的方法的时候,就会报错(因为在类中没有写实现)

 5.类是单继承,但是协议可以多遵守

    一个类只能有一个父类(单根性,传递性)

    但是一个类可以同时遵守多个协议,当这个类遵守多个协议之后,就相当于这个类拥有了所有协议中定义的方法的声明,那么这个类就可以实现所有协议中的方法


6.协议可以从另外一个协议继承,并且可以实现多继承,

@protocol A协议名 <B协议名>

代表A协议继承B协议,A协议中既有自己的方法声明,也有B协议中的方法申明


-----------另外一篇也是有关协议的    链接黑洞



创建协议,只写方法

#import <Foundation/Foundation.h>


@protocol MyProtocol <NSObject>


-(void)run;

-(void)sleeep;

@end


创健Dog类中写方法实现

#import "Dog.h"


@implementation Dog

//准守了这些协议相当于写过了方法的声明 

-(void)run

{

    NSLog(@"老司机带带我我");

}


-(void)sleeep

{

    NSLog(@"妹子我想跟你困觉");

}


-(void)eat

{

    NSLog(@"好吃好吃");

}

@end



在main函数中创建以及调用

#import <Foundation/Foundation.h>

#import "MyProtocol.h"

#import "Dog.h"


int main(int argc,constchar * argv[]) {


    Dog *dahuang = [Dog new];

    [dahuang run];

    [dahuang sleeep];

    [dahuang eat];

    

    return0;

}







创建协议:

0 0
原创粉丝点击