面向对象编程:继承
1. 引言
在软件开发中,软件复用是提高开发效率和质量的关键。继承作为一种软件复用的形式,允许我们创建一个类,该类可以吸收现有类的功能,并对其进行定制或增强。通过利用经过验证的高质量软件,软件复用能够在程序开发过程中节省大量时间。
当创建一个新类时,我们不必从头开始编写全新的数据成员和成员函数,而是可以指定新类继承现有类的成员。这个现有类被称为基类,而新类则被称为派生类。在其他编程语言中,如 Java 和 C#,基类也被称为超类,派生类被称为子类。派生类代表了一组更特定的对象。
C++ 提供了三种继承方式:公有继承、保护继承和私有继承。在本文中,我们将重点讨论公有继承,并简要介绍其他两种。在公有继承中,每个派生类对象也是其基类的对象,但基类对象不是其派生类的对象。例如,如果以 Vehicle 作为基类,Car 作为派生类,那么所有的汽车都是车辆,但并非所有的车辆都是汽车,车辆还可以是卡车、船只等。
我们需要区分“is-a”关系和“has-a”关系。“is-a”关系代表继承,在这种关系中,派生类的对象也可以被视为其基类的对象。例如,汽车是车辆,因此车辆的任何属性和行为也是汽车的属性和行为。相比之下,“has-a”关系代表组合,一个对象包含一个或多个其他类的对象作为成员。例如,汽车有许多组件,如方向盘、刹车踏板、变速器等。
2. 基类和派生类
基类往往更通用,而派生类则更具体。以下是一些基类和派生类的简单示例:
| 基类 | 派生类 |
| ---- | ---- |
| Student | GraduateStudent, UndergraduateStudent |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



