为什么我不能从C#中的子类访问受保护的方法?
类:
public abstract class A
{
protected void Method()
{
}
}
Run Code Online (Sandbox Code Playgroud)
子类:
public class B : A
{
}
Run Code Online (Sandbox Code Playgroud)
控制台应用:
B b = new B();
b.Method();
Run Code Online (Sandbox Code Playgroud)
编译器说:错误1'方法()'由于其保护级别而无法访问
Bra*_*NET 17
protected不不意味着客户端代码可以通过一个派生类实例访问.
它确实意味着派生类代码可以使用它.例如,这将是有效的:
public class B : A
{
public void SomeMethod()
{
Method();
}
}
Run Code Online (Sandbox Code Playgroud)
如果您希望确切的代码示例正常工作,请标记Method为public.