四十一、类别 和 协议(五)非正式协议

本文深入探讨了非正式协议的概念及其在编程领域的应用,包括如何在类物件中实施此类协议,以及与正式协议的区别。同时,通过具体实例说明了非正式协议在实际编程实践中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

也许  你  从各种渠道  听说过  非正式协议这个概念。非正式协议  实际上  指的是  一个类别。这个类别当中  列举了  一系列的措施,而  这些措施  并没有包含  具体内容。大家  都  知道  所有类型的物件  都  包含  在最底层那类物件当中,所以  非正式协议  是  为最底层那类物件制定的,这样  所有类型的物件  都可以遵循。因此  非正式协议 又称为  抽象协议。

如果  你  查看  <NSScriptWhoseTests.h>这个头文件,你  就能找到  这样的非正式协议:

这里的NSComparisonMethods这个类别  就属于  NSObject这类物件。这里面的措施  可以当作  协议的一部分  加以实施。一类物件的非正式协议  并不包含  每项措施的具体内容,而  包含在这类物件中的另外一类物件  则需要  在它们的接口部分  列举出  这些措施,并且  在实施部分  写出  这些措施的具体内容。与  正式协议  不同,编译器 并不强制要求  你  实施  非正式协议中的措施。

如果  一类物件  遵循  一项正式协议,那么  这项协议中所有必要的措施  都必须  适用于  这类物件。如果  一类物件  遵循  一项非正式协议,这项协议中的措施  并不一定要  全部  适用于  这类物件。编译器  也不会检查  一类物件  是否遵循  非正式协议,但是  运行系统  会检查  这一点。

先前的博文中提到的@optional命令  和  非正式协议的作用  是  一样的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值