专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

protocal和protocol的区别_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/7 0:40:45       共计:3586 浏览

protocal和protocol的区别?

一、概念:

1、非正式协议(protocol):所谓的非正式协就是类别,即凡是NSObject或子类的类别,都是非正式协议。

2、正式协议(protocal):指的是一个以@protocol方式命名的方法列表,与非正式协议不同的是,它要求显示的采用协议。你可以使用@required或者optional关键字指定方法是否必须实现。子类继承父类采用的协议。正式协议也可以遵守其他协议。

正式协议(protocal):

1、正式协议的方法类型

正式协议声明的方法有两种类型:

① @required

该类的方法要遵守相应协议的类中是必须实现的,不然编译器会警告(这是在编译时做的检查)

② @optional

该类的方法在遵守相关协议的类中是否实现是可选的。

2、正式协议存在的意义

正式协议可以将业务的方法定义剥离出来,形成了一个单独的文件。

非正式协议(informal protocol):

1、类别和匿名类别(类扩展)

所谓的类扩展,就是为一个类添加额外的原来没有的变量、方法或者合成属性。

2、类别和类扩展的区别:

1、类别中只能增加方法;

2、类扩展不仅能增加方法,还可以增加实例变量(或者合成属性),只是该实例变量默认是@private类型的(作用范围只能再自身类,而不是子类或者其他地方);

3、类扩展中声明的方法没有被实现,编译器会报警,但是类别中的方法没有被实现编译器是不会有任何警告的。这是类扩展在编译阶段呗添加到类中,而类别是在运行时被添加到类中。

4、类扩展不能像类别那样拥有独立的实现部分,也就是说,类扩展所声明的方法必须依托对应类的实现部分来实现。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:java怎么将json对象转换成json数组_java | ·下一条:jdk要自己下载吗_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有