为什么我不能从C#中的子类访问受保护的方法?
类别:
public abstract class A
{
protected void Method()
{
}
}
子类:
public class B : A
{
}
控制台应用程序:
B b = new B();
b.Method();
编译说: 错误1'方法()'由于其保护级别而无法访问
答案 0 :(得分:17)
protected
不表示客户端代码可以通过派生类实例访问它。
确实意味着派生类代码可以使用它。例如,此有效:
public class B : A
{
public void SomeMethod()
{
Method();
}
}
如果您希望完全代码示例有效,请将Method
标记为public
。