protected 成员可以在其类中和派生类实例中访问。
如果 .NET 中的每个类型都派生自 Object,那么 System.Object 中的 protected 成员和公共(public)成员之间有什么区别吗?
最佳答案
正如您所说, protected 成员在其类和任何继承类中都是可访问的。公共(public)成员可以从任何其他类访问。
我在 MSDN 文档中看到 Object
的两个 protected 成员:Finalize
和 MemberwiseClone
。这些方法可在任何继承类(即任何类)中调用,但不可公开访问。如果我们有以下内容:
class Foo
{
object Test()
{
return this.MemberwiseClone();
// Works, because Foo can see protected MemberwiseClone
// inherited from Object
}
}
class Bar
{
object Test()
{
var foo = new Foo();
return foo.MemberwiseClone();
// fails: Bar cannot see Foo's protected MemberwiseClone
// because Bar does not inherit from Foo
}
}
关于c# - System.Object 中的 protected 成员有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24049654/