导入
什么是继承?
在本课程中,你将学习继承(Inheritance),这是面向对象编程中的一个强大概念。
现在你已经熟悉了 对象 和 类 的概念,让我们来讨论另一个面向对象编程中的关键概念:继承。
定义
继承 提供了一种从现有类创建新类的方式。新类是现有类的特化版本,它继承了现有类的所有 非私有 字段(变量)和 方法。现有类用作创建新类的起点或 基类。
IS A 关系
阅读上述定义后,接下来的问题是:我们什么时候使用继承? 当我们发现类之间存在 IS A 关系时,就可以使用继承。
在上图中,我们可以看到三个类之间存在 IS A 关系。我们可以这样描述:
- Square IS A shape
- C# IS A programming language
- Soda IS A beverage
根据上述关于 继承 的描述,我们可以得出结论:可以通过扩展 现有类 来构建新类。新类以特定方式扩展了现有类。例如,一种汽水 是 一种饮料,但在所有饮料的特性基础上,还增加了气泡。
让我们看看可以使用 Shape、ProgrammingLanguage 和 Beverages 类派生出的一些类:
| 现有类 | 派生类 |
|---|---|
| Shape | Square, Circle, Triangle |
| Programming Language | C#, Java, Python |
| Beverage | Soda, Beer, Wine |
让我们来看看 IS A 关系不存在的情况。
在上图中,显然无法使用 继承,因为这些对象之间不存在 IS A 关系。
C# 的 Object 类
让我们来看一个 .NET 框架中预实现的优秀继承示例。在使用 C# 编写 .NET 框架代码时,每当创建一个 class,它都会直接或间接地继承自内置的 C# 类 Object 的所有 非私有 方法 和 字段。Object 类中定义的方法在创建 新类 时非常有用。要了解有关 C# Object 类及其功能的更多信息,请访问 这里。
事情变得越来越有趣了!让我们进入下一课,在其中我们将讨论与继承相关的语法和术语。