C# 继承

· 约 6 分钟读完 · 第 20 / 39 章

继承是面向对象编程的一个核心概念。它允许创建一个类,该类基于现有的类,并且可以重用现有类的属性和方法。通过继承,我们可以创建一个新的类,该类扩展了现有类的功能。

继承的基本概念

在C#中,当一个类从另一个类派生时,就形成了一个继承关系。被派生的类称为基类或父类,派生出的新类称为派生类或子类。子类继承了父类的所有非私有成员,包括字段、属性、方法等,并且还可以添加自己的新成员。

示例

下面是一个简单的继承示例:

在这个例子中,Dog 类继承了 Animal 类。因此,Dog 实例不仅可以调用 Bark() 方法,还可以调用从 Animal 类继承来的 Eat() 方法。

构造函数与继承

在C#中,子类不能直接继承父类的构造函数,但可以通过调用 base 关键字来调用父类的构造函数。这有助于初始化继承的成员。

示例

在这个例子中,Dog 类的构造函数调用了 base 关键字来传递参数给父类 Animal 的构造函数。

覆盖方法

子类可以覆盖(重写)父类的方法,以便提供特定于子类的行为。这通过使用 override 关键字来实现。

示例

在这个例子中,MakeSound 方法在 Animal 类中被定义为虚拟方法,并在 Dog 类中被覆盖。当通过 Dog 类的对象调用 MakeSound 时,将执行 Dog 类中的版本。

封闭类和方法

有时我们可能不希望类或类的方法被继承。这时可以使用 sealed 关键字来封闭类或方法。封闭类意味着这个类不能被继承,而封闭方法意味着这个方法不能被覆盖。

示例

在这个例子中,Cat 类和 MakeSound 方法都被声明为密封,因此它们不能被进一步继承或覆盖。

多级继承

在C#中,类可以多级继承,也就是说,一个类可以从另一个类派生,而这个类又可以从第三个类派生,以此类推。

示例

在这个例子中,Dog 类继承自 Mammal 类,而 Mammal 类又继承自 Animal 类。因此,Dog 类可以访问所有这三个类中的方法。

总结

继承是面向对象编程的重要组成部分,它允许我们创建更复杂的类结构,从而更好地组织和复用代码。通过继承,我们可以创建具有共同行为和属性的类层次结构,使得代码更加模块化和易于维护。

以上便是关于C#继承的详细介绍。接下来,我们将探讨更多关于面向对象编程的概念。