【C# 】继承
背景..什么是继承?
「继承」是对象导向编程的其中一个基本属性。 它可让您定义子类,重复使用(继承)、扩充或修改父类别行为。 其成员可供继承的类别称为基底类别。 继承基底类别成员的类别则称为「衍生类别」。
C# 和 .NET 只支持「单一继承」。 也就是说,类别只能继承自单一类别。 不过,继承可以转移,这可让您定义一组型别的继承阶层。 换句话说,型别 可继承自型别,其继承自型别 ,而该类型的继承来源为基底类别类型 。 因为继承可以转移,所以型别可以使用型别的成员。D
C
B
A
D
A
基底类别的所有成员不一定都由衍生类别继承。 不会继承的成员如下..
-
静态构建函数,其会初始化类的静态数据。
-
构造函数,您调用它创建一个新的执行个体。 每个类别都必须定义自己的建构函数。
-
析构函数,由执行阶段的内存回收行程呼叫以终结类别的执行个体。
由派生继承基类别的所有其他成员时,是否可以看见它们,取决于其存取范围。 成员存取范围会影响其在衍生类别的可见性,如下所示..
-
私用成员只有以嵌套方式置于其基底类别时,才会显示在衍生类别中。 否则,不会显示在衍生类别中。 在下列示例中, 是衍生自 的嵌套类,而则衍生自 。 私用字段会显示在 A.B 中。 不过,如果您移除方法中的注解,并尝试编译这个示例,它会产生编译器错误 CS0122:「'A.value' 的保护层级导致无法对其进行访问」。
A.B
A
C
A
A.value
C.GetValue
继承使用范围
只适用于类别和接口。
隐式继承
型别分类 隐含继承自
Class Object
struct ValueType, Object
枚举 Enum, ValueType, Object
Delegate MulticastDelegate, Delegate, Object
继承和"IS"关系
通常,继承用于表示基类与一个或多个派生类之间的"is a"关系。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异