Iva*_*rov 11 oop inheritance public internal swift
我在Swift 3中阅读了Apple关于访问修饰符的参考资料.我在stackoverflow上也读过同样的内容,但是我没有得到答案.据我所知,有四个层次:
我为自己创建了方案,以了解所有这些修饰符之间的差异并在此处上传.如您所见,公共修饰符和内部修饰符之间没有区别.但是它们处于不同的级别.任何想法将不胜感激!
小智 13
内部 - 这是swift中的默认访问说明符.有了这个,我们可以访问同一模块(目标)中的数据成员和成员函数.
公共 - 您可以在此处访问同一模块内外的所有数据成员和成员函数.但是你不能在模块外部进行子类化或覆盖.
打开 - 与公共一样,唯一的区别是您可以在模块外部进行子类化或覆盖.
Fileprivate - 顾名思义,数据成员和成员函数可以在同一个文件中访问.
私有 - 您可以在函数体或类的范围内访问.
Apple的The Swift Programming Language一书清楚地解释了这些访问修饰符:
"Swift为代码中的实体提供了五种不同的访问级别.这些访问级别与定义实体的源文件相关,也与源文件所属的模块相关.
开放访问和公共访问使实体可以在其定义模块的任何源文件中使用,也可以在来自导入定义模块的另一个模块的源文件中使用.在指定框架的公共接口时,通常使用开放或公共访问.开放和公共访问之间的区别如下所述.
内部访问使实体可以在其定义模块的任何源文件中使用,但不能在该模块之外的任何源文件中使用.在定义应用程序或框架的内部结构时,通常使用内部访问.
文件专用访问将实体的使用限制在其自己的定义源文件中.当在整个文件中使用这些详细信息时,使用文件专用访问来隐藏特定功能的实现细节.
私人访问限制实体对封闭声明的使用.当这些详细信息仅在单个声明中使用时,使用私有访问来隐藏特定功能的实现细节
摘录自:Apple Inc."The Swift Programming Language(Swift 3.1)."iBooks.https://itun.es/gb/jEUH0.l "
无论您标记为公开,都可以在您的应用内和应用(模块)之外使用.如果您将某些内容标记为内部,只能在您的应用(模块)中使用.当您开发库(框架)时,这非常有用,您可以使用内部隐藏库结构.
归档时间: |
|
查看次数: |
8188 次 |
最近记录: |