OC 第八天

老牛浏览 360评论 0发表于

协议

objectivec
//
//  main.m
//  01-协议的基本知识
//

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        /**
         1.协议的定义?
         一个方法的列表就叫协议。 特点:只有方法的声明,没有实现。实现放在:那个类引用了这个协议,实现就放在这个类的实现当中

         2.格式:@protocol 协议名字
         方法的声明列表
         @end

         3.协议的使用:
         3.1 创建协议  2.引入协议  3.引用协议 注意:代表你要遵守这个协议 4.写协议里面方法的实现

         4.协议的分类:非正式协议和正式协议
         4.1 非正式协议:类的声明部分,没有成员变量的声明,只有方法的声明
              正式协议:给协议起了一个正式的名称。
         区别:非正式协议:只能被自己和子类引用,正式协议:只要这个类引用了我,就可以使用我

         5.为什么使用协议? (使用的是工程:理解协议)
         提供了一个统一的接口。当多个类拥有同一个功能的时候,咱们可以将这个功能提取出来,形成一个方法的列表。

         6.正式协议内部方法的分类
         6.1 由@optional 修饰的方法  被引用后,这个类可以写方法的实现,也可以不写方法的实现
         6.2 由@required 修饰的方法  被引用后,这个类必须写方法的实现 (默认是required类型的

         7.协议与继承
                继承:                 协议
         相同点:都可以提供统一的接口
         不同点:给现有类创建父类         不用单独创建一个类
                里面可以有成员变量的声明  只能有方法声明
                耦合性高                耦合性相对来说比继承低
                类与类之间要有兄弟关系     使用协议的可以是任意类,前提:只 
                                       要遵守了此协议即可

         8.其他功能
         一个协议可以被多个类或协议引用
         一个类或协议可以同时引用多个协议
         协议与类的声明可以同时放在一个。文件中
         */

        Person *person = [[Person alloc]init];

        [person play];
        //协议里面方法的调用与调用自己的方法相同
        [person baseMethod];

    }
    return 0;
}
点赞
收藏
暂无评论,快来发表评论吧~
私信
老牛@ilaoniu
老牛,俗称哞哞。单纯的九零后理工小青年。喜欢折腾,爱玩,爱音乐,爱游戏,爱电影,爱旅游...
最后活跃于