美文网首页
Swift 关键字 -- 访问控制符

Swift 关键字 -- 访问控制符

作者: 呵呵_7380 | 来源:发表于2022-06-01 07:14 被阅读0次
访问修饰符:在swift中,访问修饰符有五种,分别是:open、public 、internal、fileprivate、private

从高到低的排序:open > public >interal > fileprivate > private
open:可以被任何模块的代码访问,包括override(重写)和继承。
public: 可以被任何模块的代码访问,模块内是可以被override(重写)和继承的,而在但其他模块不可以override(重写)和继承。
internal:内部的意思。默认访问级别,可写可不写,访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。
fileprivate:修饰的属性或者方法只能在当前文件中访问,包括override(重写)和继承,当前类的extension 中也可以。如果一个文件中含有多个类,这些类中也可以。

类级别/文件级别/模块级别/全域访问/全域继承+重载


class Person  
{  
    fileprivate var jobTitle:String = ""  
}
extension Person  
{
    //当 extension 和 class 在同一个文件中时,允许访问
    func printJobTitle()  
    {  
        print("My job is \(jobTitle)")  
    }  
}

private:修饰的属性或者方法只能在当前类中访问,当前类的extension 中也可以访问。如果当前文件有多个类,这些类中不可以访问。

image

case

private

access.swift 

private class AccessPrivate {
    func demo() -> Void {
            
    }
}

error Class must be declared private or fileprivate because its superclass is private

access.swift 
class AccessPrivateImp: AccessPrivate {
    override func demo() {
        
    }
}

success

access.swift 
fileprivate/private class AccessPrivateImp: AccessPrivate {
    override func demo() {
        
    }
}

1. class 关键词修饰与 superclass 关键词修饰的级别有相关性, 当前类权限级别<=superclass权限级别
2. private 当前类的 extension 也是可以访问

相关文章

网友评论

      本文标题:Swift 关键字 -- 访问控制符

      本文链接:https://www.haomeiwen.com/subject/sclzprtx.html