2019独角兽企业重金招聘Python工程师标准>>>

1协议:简单滴说就是类似于java中的接口。

1.1定义

@protocol 协议名
    //methods declare
@optional //methods declare
@required    //methods declare
@end

类似于:
public interface 协议名{
    方法声明    
}
eg: @protocol MyProtocol
    -(void)add;
    -(void)jian;
    -(void)cheng;
     @end

1.2使用

在类的声明中通过<>来指定协议,将协议名写在<>中,若有多个协议,则用逗号分隔开。
例如:
定义一个学生类:

@interface Student:NSObject<MyProtocol>

{
    成员变量...
}

方法声明...
@end

类似于:public class Student extends NSObject implements MyProtocol{}

1.3可以用协议来限定变量类型或方法参数类型的范围:

eg: id<MyProtocol> ptr = xxxx;

这个表明ptr这个变量只能保存实现了MyProtocol类的对象。

-(void) setPerson:(Person<MyProtocol>) person;

这个表明setPerson:这个方法只能接收实现了MyProtocol类的对象.

转载于:https://my.oschina.net/leojack/blog/91506

协议(Protocol)类比java中的interface相关推荐

  1. Objective-C 入门(七)协议 protocol(JAVA中的接口)

    Objective-C 入门(七)协议 protocol(JAVA中的接口) 接口的作用想必大家都比较了解 OV中的 protocol 相比接口作用相似 语法稍有不同 1.先来看声明一个协议 在创建文 ...

  2. 【Objective-C】java中的interface与Objective-C中的interface的区别

    java中的interface interface叫做接口,是一种特殊的抽象类 一个接口中,所有方法为公开.抽象方法:所有的属性都是公开.静态.常量. 一个类只能继承一个类,但是能实现多个接口,这样可 ...

  3. Java 中接口 interface 实例介绍

    接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值 ...

  4. java中的interface

    转载: Java不支持多重继承,即一个类只能有一个父类 为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口 接口是抽象方法和常量值定义的集合,是一种特殊的抽象类 接口中只包含常量和方法的 ...

  5. java中abstract,interface,final,static的区别

    2019独角兽企业重金招聘Python工程师标准>>> 关键字: abstract, interface, final, static 一,抽象类:abstract 1,只要有一个或 ...

  6. java中functional interface的分类和使用

    文章目录 简介 Functional Interface Function:一个参数一个返回值 BiFunction:接收两个参数,一个返回值 Supplier:无参的Function Consume ...

  7. Lect2 Java 中的 Interface

    什么是 Interface Java接口(Interface)是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以 ...

  8. Thrift介绍以及Java中使用Thrift实现RPC示例

    场景 Thrift Thrift最初由Facebook研发,主要用于各个服务之间的RPC通信,支持跨语言,常用的语言比如C++, Java, Python,PHP, Ruby, Erlang,Perl ...

  9. 如何使用InetAddress在Java中获取IP地址

    An IP address is either a 32-bit or 128-bit unsigned number used by IP, a lower-level protocol on wh ...

  10. java定义接口_一文知道Java中接口的定义

    使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: 方法:接口中的方法只有定义而没有被实现. ...

最新文章

  1. day18 17.c3p0连接池使用
  2. Spire.XLS试用手记
  3. java 1_java基本语法1
  4. ntp服务器查看状态命令ntpstat及ntpq -p 说明及差别详解
  5. string.find()与string::npos
  6. js动态的属性名如何取该属性的值
  7. 快过年了,来,来,来!给七大姑八大姨好好解释解释【啥是DBA 】
  8. python 速成学堂_Python 与数据科学入门
  9. 对比,还原真实的GPU池化
  10. oracle日志不应用,dg报ORA-600日志不能应用
  11. Should I design my classes from the outside (interfaces first) or from the inside (data first)?
  12. 【译】Ignition:V8解释器
  13. 尚硅谷java学习笔记第五天(数组上)
  14. 中共湖南省委党校中青班学员赴腾讯云启产业基地(长沙)开展交流考察活动
  15. Spring 测试运行的时候提示 Unable to find a @SpringBootConfiguration 错误
  16. mobil连接数据的关键语句
  17. EchartsY轴刻度自适应
  18. python里使用asyncore模块
  19. 以太网PLC无线WIFI跨网段通讯和Modbus仪表数据采集
  20. 网络七层结构(讲人话)

热门文章

  1. MAC编译:fatal error: ‘endian.h‘ file not found
  2. 六石管理学:你觉得别人错了,应该怎么办
  3. 微软提供Windows USB/DVD Download Tool:刻录WINDOWS安装系统到U盘
  4. RGB转换为NV12的代码
  5. 苹果被拒:4.Guideline 2.3.3 - Performance - Accurate Metadata
  6. 管理感悟:能图像不文字
  7. 实现putchar put_str put_int
  8. 特殊的栈GetMin
  9. centos 卸载docker_Docker (一) 安装
  10. java 组件更新,java – 我可以批量处理一些Swing组件更新,以便重绘全部一次完成吗?...