访问控制关键字open、public、internal、fileprivate、private的区别?

Swift中有5个级别的访问控制权限,从高到低依次是open、public、internal、fileprivate、private

它们遵循的基本规则:高级别的变量不允许被定义为低级别变量的成员变量,比如一个private的class内部允许包含public的String值,反之低级变量可以定义在高级别变量中;

●    open:具备最高访问权限,其修饰的类和方法,可以在任意模块中被访问和重写

●    public:权限仅次于open,和open唯一的区别是:不允许其他模块进行继承、重写

●    internal:默认权限,只允许在当前的模块中访问,可以继承和重写,不允许在其他模块中访问

●    fileprivate:修饰的对象只允许在当前的文件中访问

●    private:最低级别访问权限,只允许在定义的作用域内访问

你可能感兴趣的:(访问控制关键字open、public、internal、fileprivate、private的区别?)