public 类和类成员只能在定义模块(目标)中进行子类化和重写
open 类和类成员可以在定义模块(目标)的内部和外部进行子类化和重写。
internal是默认访问级别。可以在定义它们的同一模块(目标)内的任何位置访问内部类和成员。您通常internal在定义应用程序或框架的内部结构时使用访问权限。
让我们考虑一下UIKit的另一个例子来解释这一点。假设在UIKit模块中声明了一个内部方法。让我们说一个叫做的方法internalMethod() 。
internal func internalMethod(){
print(“我在UIKit里面”)
}
即使我们导入UIKit,我们也无法使用internalMethod()ViewController内部。它只能在UIKit的同一模块内的任何地方访问。