gpt4 book ai didi

iphone - Objective-C的协议(protocol)和类别可以继承吗?

转载 作者:IT王子 更新时间:2023-10-29 08:13:48 29 4
gpt4 key购买 nike

我对 Objective-C 协议(protocol)和类别的一些概念有点困惑。

Objective-C中的子类可以继承协议(protocol)和类别吗?

最佳答案

类别是在运行时添加到类中的方法的集合。因为 Objective-C 使用动态绑定(bind),这意味着类别中定义的方法可用于该类及其所有子类。特别是选择器在它们被调用时绑定(bind)到方法,而不是在编译期间或程序首次加载时。加载类别时,会将类别添加到类中。

协议(protocol)定义了符合协议(protocol)的类 promise 实现的方法签名的集合。一旦一个类声明它符合协议(protocol),就好像在该类的接口(interface)中声明了方法一样,继承规则完全相同:子类继承协议(protocol)方法的声明和实现,但也可以选择覆盖父类(super class)实现。

协议(protocol)本身可以扩展以产生新的协议(protocol)。由原始协议(protocol)中方法的超集组成。事实上,正如大多数类继承自 NSObject类,大多数协议(protocol)扩展了 NSObject协议(protocol)(协议(protocol)名称和类名称在不同的 namespace 中)。这样对象声明为 id<WhateverProtocol>可以发送基本消息,如 -retain , -release等等,而不会生成编译器警告。

关于iphone - Objective-C的协议(protocol)和类别可以继承吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7470994/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com