我有以下代码段:
public abstract class Foo
{
protected Foo()
}
使用protected作为访问修饰符或public?
之间的继承是否有任何区别?我在这种情况下大多看到使用受保护。 所以有区别,为什么人们使用公众保护?
答案 0 :(得分:6)
可能是一些微妙的情况,它会产生影响(并且它会被可检测反射)但基本上它们是相同的。它可能更清楚使其成为protected
,因为它实际上不能被派生类的构造函数调用。
答案 1 :(得分:2)
一个区别是如果你计划序列化类,那么你必须有一个默认的public
构造函数(默认意味着构造函数不带参数)。否则,像乔恩说的那样差异很小。