Swift4.0有open, public, internal, fileprivate, private五種訪問權限,它們都可以修飾方法和屬性。
不同點在于:
- 是否可以被子類繼承訪問
- 同文件不同類下是否可以訪問
- 不同文件是否可以被訪問
- 不同組件下是否可以被訪問
private
私有訪問權限。被private修飾的屬性和方法,僅可以在本類中使用。即使同文件下的不同類也是不能調用的。繼承的子類也不能調用。
fileprivate
文件私有訪問權限。顧明思義,fileprivate和private 區(qū)別同文件的屬性和方法是可以調用的。
internal
默認權。模塊內(nèi)部可以訪問。
public
公有訪問權限。類或者類的公有屬性或者公有方法可以從文件或者模塊的任何地方進行訪問。注意:APP中引用的第三方框架是一個完整的模塊,其他模塊不能直接訪問。
open
公開權限, 最高的權限??梢员蝗魏蝝odule和文件訪問和繼承重寫。
則訪問權限
open > public > internal > fileprivate > private
| 權限 | open | public | internal | fileprivate | private |
|---|---|---|---|---|---|
| 子類繼承訪問 | √ | √ | √ | ||
| 同文件下的不同類是否可以訪問 | √ | √ | √ | √ | |
| 同組件不同文件是否可以訪問 | √ | √ | √ | ||
| 不同組件下是否可以被訪問 | √ |