C#笔记(八)

继承

继承仅适用于类和接口。
并非所有基类成员都可供派生类继承。 以下成员无法继承:

  • 静态构造函数:用于初始化类的静态数据。
  • 实例构造函数:在创建类的新实例时调用。 每个类都必须定义自己的构造函数。
  • 终结器:由运行时的垃圾回收器调用,用于销毁类实例。

可访问性

虽然基类的其他所有成员都可供派生类继承,但这些成员是否可见取决于它们的可访问性。 成员的可访问性决定了其是否在派生类中可见

Private

只有在基类中嵌套的派生类中,私有成员才可见。否则,此类成员在派生类中不可见。

Protected

受保护成员仅在派生类中可见。

Internal

内部成员仅在与基类同属一个程序集的派生类中可见, 在与基类属于不同程序集的派生类中不可见。

Public

公共成员在派生类中可见,并且属于派生类的公共接口。 可以调用继承的公共成员,就像它们是在派生类中定义一样

重写

派生类还可以通过提供重写实现代码来重写继承的成员。 基类成员必须标记有 virtual 关键字,才能重写继承的成员。
如果尝试重写非虚成员(如以下示例所示),则会生成编译器错误 CS0506:“ 无法重写继承的成员 ,因为继承的成员没有 virtual、abstract 或 override 标记。”

在某些情况下,派生类必须重写基类实现代码。 标记有 abstract 关键字的基类成员要求派生类必须重写它们。

posted @ 2021-04-17 11:55  FrancisForeverhappy  阅读(46)  评论(0编辑  收藏  举报