2012-11-07 66 views

回答

22

你不會,你不能。

如果您想將類別公開爲public,則基類型必須爲public。另一種選擇是使用public interface,並且只通過interface(大概是用於創建實例的工廠方法)公開該類型。

最後一個選項是封裝而不是繼承它的基類。

+0

或者要保護的基類上的所有方法/屬性?但班級本身要公開? – Liam

+0

@李安,這取決於你想要保護的東西;例如,如果有人能夠*子類化它,那麼他們就可以訪問這些方法。 –

+0

是真的,會內部工作嗎?不確定? – Liam

1

只是爲了澄清我在@Marc礫石的答覆意見是說你可以

public ChildClass : ParentClass 
{ 

} 

public ParentClass 
{ 
    internal void MethodIdontWantToExpose() 
    { 

    } 

} 

也就是說一個interface可能是最好的解決方案

9

讓它public,使所有構造函數internal (如果使用默認構造函數,請添加無參數構造函數來覆蓋該構造函數)。

然後,雖然公開和不密封,它不能被外部代碼分類。

相關問題