【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"关系。
标签:..,C#,成员,继承,类别,基底,衍生 来源: https://www.cnblogs.com/cdaniu/p/15856300.html