swift - Swift 中的父类(super class)与协议(protocol)?

标签 swift oop

我从未使用过 Objective C,但有相当多的 C++ 经验。

Objective C 中的父类(super class)和协议(protocol)之间到底有什么区别?我读到协议(protocol)本质上是一个纯虚拟类,但真的是这样吗?协议(protocol)只是一种特定类型的父类(super class)吗?

最佳答案

协议(protocol)是类要遵守的契约。当一个类符合协议(protocol)时,它告诉编译器它将实现协议(protocol)中声明的所有方法和所有属性。 在 Objective-C 中,该类还需要一个父类(super class)。在很多情况下,这是NSObject。父类(super class)已经实现了很多方法(例如 isEqual:)。协议(protocol)从不实现任何方法或定义任何属性。

关于swift - Swift 中的父类(super class)与协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024186/

相关文章:

SwiftUI 更改 SF Symbol 内部透明部分的颜色

java - 将患者添加到我实现的链表类中

ios - 尝试创建类似 "test%40test.nl"的字符串时出现 EXC_BAD_ACCES 错误

ios - 如何在工具栏图标下添加文字?

ruby-on-rails - Ruby on Rails 和类变量混淆

c - C 中的面向对象程序 - 列表

Python:在初始评估后向类添加父类

java - 如何在时间表中表示时间段

ios - 如何在 UIView 中独立绘制到 CAShapeLayer?

ios - 如何将现有 Appcelerator Titanium 应用程序数据库迁移到 native Swift iOS 应用程序