2017-06-06 109 views
0

我是kotlin的新手我最近一直在學習kotlin的繼承,然後我意識到我們不能將類的可見性標記爲「受保護」。如果我錯了,請糾正我,還是有其他方法讓班級受到保護?爲什麼我們不能在kotlin中將類的可見性標記爲「受保護」?

+0

我假設你是指頂級課程。那怎麼會有道理?將課程標記爲受保護的意味着什麼? –

+0

嵌套類可以像Java一樣受到保護。 –

+0

你應該展示一個具有確切錯誤問題的示例,因爲你要求*是*,所以你必須做一些不同的事情。 –

回答

5

您只能標記protected部分類,以便它們只能從派生類訪問。您可以標記protected成員屬性,成員函數或嵌套類:

open class X { 
    protected val v: SomeType = someValue 
    protected fun f() { } 
    protected class Y { ... } 
} 

但你不能標記protected任何不屬於一類(如頂級類或函數),因爲修飾符將沒有意義:頂層實體不受繼承,因此可能沒有派生類可以訪問它。

相關問題