为什么我不能从C#中的子类访问受保护的方法?

时间:2015-02-05 21:00:42

标签: c# inheritance

为什么我不能从C#中的子类访问受保护的方法?

类别:

public abstract class A
{
    protected void Method()
    {

    }
}

子类:

public class B : A
{

}

控制台应用程序:

B b = new B();

b.Method();

编译说: 错误1'方法()'由于其保护级别而无法访问

1 个答案:

答案 0 :(得分:17)

protected 表示客户端代码可以通过派生类实例访问它。

确实意味着派生类代码可以使用它。例如,有效:

public class B : A
{
     public void SomeMethod()
     {
          Method();
     }
}

如果您希望完全代码示例有效,请将Method标记为public