协议Protocol

一、协议的基本概念

1、protocol它可以声明一些必须实现的方法和选择实现的方法,这与java是完全不同的

2、在写java1是

二、Protocol语法格式

1、定义

@protocol   协议名称

//方法声明列表

@end

2、类遵守协议

@interface   类名  :父类<协议名称1,协议名称2,..>

@end

三、Protocol与继承的区别

1、继承之后默认就有实现,而protocol只有声明

2、相同类型的类可以使用继承,但不同的类型只能使用protocol

3、protocol可以用于存储方法的声明,可以将多个类共同的方法抽取出来,以后让这些类遵守协议即可

四、注意:

1、协议只能声明方法,不能声明属性

2、父类遵循了每某个协议,那么它的子类也遵循这个协议

3、在oc中一个类可以遵循一个或多个协议

4、oc中的类只有一个父类,也就是说只有单继承,但遵循多层继承

5、协议可以遵守协议,一个协议遵守了另一个协议,就可以拥有另一个协议中的方法声明

五、基协议

1、NSObject是一个基类,最根本最基本的类,任何其它类最终都要继承它

2、NSObjec也是一个基协议

3、建议每个新的协议都要遵守NSObject协议

六、@required和@optional关键字

1、协议中有两个关键字可以控制方法是否要实现(默认是@required)

2、@requid:这个方法必须要实现(若不实现,编译器会发出警告)

3、@optional:这个方法不一定要实现

4、若果没有使用任何关键字修饰协议中的方法,那么该方法默认就是@required

5、如果协议中的方法用@required来修饰(或什么关键字都没修饰),而遵守协议的类又没有实现该方法,那么会报警

6、如果用@optional来修饰方法,而遵守协议的类又没有实现该方法,也不会发出警告

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 协议定义了一个蓝图,规定了用来实现某一特定任务或者功能的方法、属性,以及其他需要的东西。类、结构体或枚举都可以采纳...
    爆裂少女小鸭子阅读 2,635评论 0 1
  • 之前已经讲过方法加载的全过程,protocol的加载过程与method是一样的,就不再赘述了。不清楚的可以参考Ru...
    Haven_ZN阅读 5,826评论 0 5
  • protocol(协议)是一组公开接口的集合,任何类都可以实现这一组接口。 协议的声明 在objective-c中...
    巫师学徒阅读 2,962评论 0 0
  • 协议定义了一个蓝图,规定了用来实现某一特定任务或者功能的方法、属性,以及其他需要的东西。类、结构体 或枚举都可以遵...
    GY1994阅读 5,206评论 0 0
  • 想起童年,大多都是快乐的,开心的,有趣的,比起长大后的一些压力和应该承担的责任,童年是无忧无虑的,童年的回忆是最让...
    微微的微笑66阅读 2,635评论 2 6

友情链接更多精彩内容