2012-03-11 78 views
3

我有下面的代碼片段:抽象類:單構造函數,訪問修飾符?

public abstract class Foo 
{ 
    protected Foo() 
} 

是否存在使用受保護的訪問修飾符或公衆之間的繼承有什麼區別?

我在這種情況下主要看到使用保護。 所以有區別,爲什麼人們使用保護公衆?

回答

5

可能是一些微妙的情況下它會有所作爲(這將是檢測與反射),但本質上它們是相同的。這可能是更清晰使它protected,因爲它實際上不能通過派生類的構造函數調用。

2

一個區別是,如果您計劃序列化類,那麼您必須具有默認構造函數public(默認意味着構造函數不帶參數)。否則,就像喬恩說的那樣,這種差異很小。

+0

這在我寫作的應用程序中扮演了一個角色,從中我的問題出現了。有趣的一點謝謝! – kamahl 2012-03-11 17:33:17