Abstract类:单构造函数,访问修饰符?

时间:2012-03-11 17:14:28

标签: c# class constructor abstract

我有以下代码段:

public abstract class Foo
{
    protected Foo()
}

使用protected作为访问修饰符或public?

之间的继承是否有任何区别?

我在这种情况下大多看到使用受保护。 所以有区别,为什么人们使用公众保护?

2 个答案:

答案 0 :(得分:6)

可能是一些微妙的情况,它会产生影响(并且它会被可检测反射)但基本上它们是相同的。它可能更清楚使其成为protected,因为它实际上不能被派生类的构造函数调用。

答案 1 :(得分:2)

一个区别是如果你计划序列化类,那么你必须有一个默认的public构造函数(默认意味着构造函数不带参数)。否则,像乔恩说的那样差异很小。