Swift 权限修饰关键字
private
:
private
修饰的属性或方法只能在当前类中使用;当调用不在当前类中,即使是当前类相关对象也不能使用private
修饰的Class
或Struct
在除在自身内部使用;其它的都不被允许(包括类的继承和实例化),因此一般开发中不会用private
修饰Class
和Struct
private
修饰的protocol
,只允许在当前文件中遵循该protocol
;其它的都是不被允许的(包括类型申明,函数或方法中的形参申明)
filePrivate
:
filePrivate
修饰的属性或方法,只能在当前文件中使用;当前文件内,可以跨类调用fileprivate
修饰Class
或Struct
,Class
在当前文件内可以实例化和继承使用,在当前文件之外的任何地方都不允许被使用fileprivate
修饰的protocol
,同private
修饰protocol
效果一致,都是只允许在当前文件中遵循,不允许类型申明使用,函数和方法的形参声明
internal
:
Swift
默认权限修饰关键字,一般不用声明,只允许在当前module
中使用,继承,重写
public
:
public
修饰的属性,Struct
和protocol
,允许跨module
使用public
修饰的Class
,允许跨module
使用,但是public
修饰的Class
是不允许跨module
继承public
修饰的方法,允许跨module
使用;但是不允许跨module
重写,即使是该方法的类是采用open
修饰
open
:
open
修饰的属性,跟public
一致,因为存储型属性不予许重写open
不允许修饰protocol
,Struct
,Struct
方法,是因为open修饰的,表示可重载open
修饰方法,允许跨module
调用和重写open
修饰class
,允许跨module
使用和继承
Swift 权限修饰关键字
https://wonderhoi.com/2024/12/09/Swift-权限修饰关键字/