Avatar ·

Swift中关键字`open`的含义及其与`public`的区别

大家好!我最近开始学习Swift,在处理访问修饰符时遇到了困惑。Apple文档中说`open`是最高访问级别,但我不完全理解它与`public`的区别。 我正在编写一个小型网络库。以下是我的类示例: ```swift public class NetworkManager { public func fetchData() { print("Fetching data...") } } ``` 一切正常,但我读到对于可能从其他模块继承的类,需要使用`open`。我尝试将`public`替换为`open`: ```swift open class NetworkManager { open func fetchData() { print("Fetching data...") } } ``` 行为上没有注意到差异。请告诉我: 1. `open`和`public`的实际区别是什么? 2. 什么时候应该使用`open`,什么时候`public`就足够了? 3. 既然已经有了`public`,为什么Apple还要引入关键字`open`? 感谢您的