2015-10-23 35 views
2

我想在其子類中使用超類的私有成員和方法,但仍不希望它們在實例級別上可見。那麼,我認爲Swift中沒有這種可能性,因爲它只有私有/內部/公共訪問修飾符。但也許有一些解決方法?在Swift中訪問超類的私有方法

我聽說過其他語言中受歡迎的受保護的修飾語,但它實際上與我的觀點相反。所有語言都沒有這種可能性嗎?如果我經常在我的子類層次結構中需要這個東西,我做錯了什麼?

回答

1

你可以有一個子類訪問它的超類的私有成員,但它必須與超類在同一個文件中。隱私適用於文件外部。文件中的任何內容都可以訪問私有成員。這不直觀。這裏是一個簡單的操場來演示。由於Bar是在同一個文件中聲明的,因此它可以訪問Fooprivate x成員。 enter image description here

斯威夫特編程語言(雨燕2.1)訪問級別,「私接限制使用的實體到它自己的文件。」