2016-09-23 80 views
1

Swift 3引入了我在框架中使用的新的open關鍵字。「open」類的初始化程序是否也需要打開?

此框架中的open類是否需要在所述框架之外使用open初始化程序,或者init函數是否繼承了類的open聲明?

例如:

open class OpenClass { 
    var A: String 

    init() {   // does this init() function need to be marked open? 
     A = String() 
    } 
} 

方的問題:做變量的公開課OpenClass繼承類的開放性?

回答

3

SE-0117 Allow distinguishing between public access and public overridability

初始值設定項不參加公開檢查;它們不能被聲明爲公開的,並且對於提供與超類中的初始化程序具有相同簽名的初始化程序沒有限制。

你不必和你不能聲明init方法爲開:

open class OpenClass { 

    open init() { // error: only classes and overridable class members can be declared 'open'; use 'public' 

    } 
} 

一類(屬性 和方法)的所有成員的默認訪問級別爲內部,那也適用於公開課。

相關問題