Protocol(协议)

(一)简介

     

2.Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现。

3.特点:协议只规定了做什么,而不管怎么去做

4.只要某个类遵守了这个协议,就拥有了这个协议中的所有方法声明。

5.只要父类遵守了某个协议,那么子类也遵守。

6.Protocol声明的方法可以让任何类去实现,protocol就是协议。

7.OC不能继承多个类(单继承)但是能够遵守多个协议。继承(:),遵守协议(< >)

8.基协议:<NSObject>是基协议,是最根本最基本的协议,其中声明了很多最基本的方法。

9.协议可以遵守协议,一个协议遵守了另一个协议,就可以拥有另一份协议中的方法声明。

       10.多个类可以同时实现同一个协议,一个类可以同时实现多个协议 (语法格式:逗号隔开多个协议)
       11.使用协议可以实现多态性,方法的动态绑定,在实现的过程中能够发现你传过来的是什么,然后实现你传过来的
        12.@required:这个方法必须要实现的方法(还有默认的)

@optional:表示可选的实现方法。
协议声明格式:@protocol   协议名  《NSobject》协议的父类
协议实现(其他类实现)格式:
                   @interface Student : NSObject<Scsys>
(二)基本使用
  创建一个协议
 

遵守协议

完成协议中声明的方法的实现
main函数 程序的运行

转载于:https://www.cnblogs.com/yibadao/p/5022512.html

OC--Protocol 协议相关推荐

  1. OC Protocol(待续)

    Protocol 协议声明任何类都可以选择实现的编程接口.协议使得两个通过继承而远近相关的类可以相互通信以实现某个目标.因此,它们提供了一种替代子类化的方法.任何可以提供对其他类有用的行为的类都可以声 ...

  2. protocol(协议)、delegate(代理)

    protocol(协议).delegate(代理) 一.protocol(协议) 1.概念:把多个类中的某些共同属性.方法抽象到一个类中,但这些属性.方法在不同的类中有不同的实现,相当于Java中的接 ...

  3. 【转】iOS开发-Protocol协议及委托代理(Delegate)传值

    原文网址:http://www.cnblogs.com/GarveyCalvin/p/4210828.html 前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来 ...

  4. iOS开发-Protocol协议及委托代理(Delegate)传值

    前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替.Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法.也就是说,它只告诉你要做什么,但 ...

  5. pc前端js调起电脑本地应用程序(需要客户端配合 自定义URL Protocol 协议 )

    由于做项目需要实现如题的一个功能,所以搜寻了相关资料. CSDN博文 自定义URL Protocol(客户端的配置):自定义URL Protocol 协议_chinahaerbin的博客-CSDN博客 ...

  6. Category(分类/类目)、Protocol(协议)、Extension(扩展/延展)

    Category(分类/类目): 利用Objective-C的动态运行时分配机制,Category提供了一种比继承更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可 ...

  7. 网卡内卸载VMware Bridge Protocol协议报错:0x8007007E

    未能卸载VMware Bridge Protocol功能.错误是 0x8007007E 解决方法 VMware Workstation 安装/卸载时卡在"正在卸载网络驱动程序(Virtual ...

  8. OC加强(三)之protocol(协议)/代理

    1.protocol概念以及基本使用 1.protocol的使用注意 OC中的协议(protocol)使用注意: 1)Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现 ...

  9. OC正式协议和非正式协议的区别

    最近看了些关于objective-c的正式协议和非正式协议的内容,发现还是有些混乱,可能是因为还不熟悉OC,对正式协议和非正式协议的使用还不是很熟练,所以想整理一下 非正式协议,是使用类别catego ...

  10. swift开发之--Protocol(协议)

    使用object-c语言的同学们肯定对协议都不陌生,但在swift中苹果将protocol这种语法发扬的更加深入和彻底. Swift中的protocol不仅能定义方法还能定义属性,配合extensio ...

最新文章

  1. 从传统运维到云运维演进历程之软件定义存储(一)
  2. 细谈C语言中的strcpy,strncpy,memcpy,memmove,memset函数
  3. 在echarts图表外调用echarts的下载功能以及echarts getDataURL图表数据不显示的问题的解决方案...
  4. Android之升级OkHttp编译提示错误如下Using ‘body(): ResponseBody?’ is an error. moved to val
  5. WireShark抓包之提示Alert Level: Fatal, Description: HandShake Failure
  6. python分析工具有哪些_常用Python数据分析工具汇总
  7. 最佳调度问题(SSOJ-2367)
  8. qc成果报告范例_株洲水务集团QC成果再获省一等奖
  9. fastdfs文件上传 read timeout_一文看懂centos7系统部署FastDFS 分布式文件系统
  10. JZOJ 1286. 太空电梯
  11. 怎样用计算机求成绩平均分,2017年计算机一级WPS辅导:WPS2007中求特定比例成绩的平均分...
  12. 07. 用两个栈实现队列(C++版本)
  13. 数论-某寒假训练赛 Round1 (Feb, 2018)
  14. JS前台页面获取值的技巧
  15. linux命令 sync,linux sync命令详解
  16. 微型计算机控制技术王艳芳,基于单片机液位控制器的设计与实现最终版(样例3)...
  17. 莫兰迪紫rgb_莫兰迪rgb参数_译述北京 | RGB的前世今生
  18. Web浏览器发送POST请求
  19. ios 应用跳转商店
  20. 因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?Link ID=135170 中的 about_Execution_Policies

热门文章

  1. 趣图:程序猿和运维狗的工作日常……
  2. Docker 镜像-管理-导入-导出
  3. PTA-1015——Reversible Primes
  4. 显示和隐藏Mac隐藏文件的命令
  5. linux 查看网络流量
  6. 试用cmd markdown
  7. 23 android多线程
  8. Linux-安装python3环境
  9. [bzoj2299][HAOI2011]向量
  10. 定时监控服务,告警,并启动服务