c# - 为什么我不能从 C# 中的子类访问 protected 方法?

标签 c# inheritance

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

类:

public abstract class A
{
    protected void Method()
    {

    }
}

子类:

public class B : A
{

}

控制台应用程序:

B b = new B();

b.Method();

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

最佳答案

protected 并不 意味着客户端代码可以通过派生类实例访问它。

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

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

如果您希望您的精确代码示例正常工作,请将Method标记为public

关于c# - 为什么我不能从 C# 中的子类访问 protected 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353909/

相关文章:

c# - 如何在 Windows Phone 8.1(通用)应用程序中格式化 html 以便在 RichTextBlock 控件中显示它?

c# - 当我尝试从 Array 对象调用它时,无法识别 IList 接口(interface)中的 Remove 方法

c# - 是否有基于 T4 旁边的模板生成 Razor View (.cshtml) 的方法?

c# - XSockets/WebSockets 无法从托管计算机以外的其他计算机访问

c++ - 为什么虚拟关键字 "persistent"贯穿 C++ 的整个层次结构?

Java - 当涉及到继承、多态、重载和覆盖时调用哪个函数?

c++ - 如何实现静态虚成员函数

c# - 如何以更清洁的方式处理大型工厂

swift - 协议(protocol)一致性在非最终类中失败,因为它使用 'Self' 作为非参数、非结果类型

c++ - 智能指针的迭代和容器