多层次继承是一种继承类型,在这种继承中,一个类从另一个派生类中派生出来,形成一个继承链,允许它通过多个级别的类传递其属性和行为或从其前身继承。
实现多层次继承
要实现多层次继承,请以层级方式定义类,其中一个类从另一个类继承。
语法
多层次继承在 C++ 中的语法如下:
class baseClass {
};
class derivedClass1 : public baseClass {
};
class derivedClass2 : public derivedClass1 {
};
这里,
-
-
derivedClass1
是从 baseClass
派生出的类。
-
derivedClass2
从 derivedClass1
派生,创建了一个多层次结构。
多层次继承的框图
参见下面的框图,展示多层次继承:
C++ 多层次继承 根据上述框图,“Shape” 是基类,并且它派生到了 “Polygon” 类,而 “Polygon” 类进一步派生到了 “Triangle” 类,以实现多层次继承。
多层次继承示例
在下面的例子中,我们正在实现多层次继承:
#include <iostream>
using namespace std;
class Shape {
public:
void display() {
cout << "这是一个形状。" << endl;
}
};
class Polygon : public Shape {
public:
void sides() {
cout << "一个多边形有多条边。" << endl;
}
};
class Triangle : public Polygon {
public:
void type() {
cout << "三角形属于三边多边形。" << endl;
}
};
int main() {
Triangle myTriangle;
myTriangle.display();
myTriangle.sides();
myTriangle.type();
return 0;
}
输出
这是一个形状。
一个多边形有多条边。
三角形属于三边多边形。
解释
首先,创建了一个名为 Shape 的基类,它有一个名为 display() 的公有方法,打印出 "这是一个形状。" 接着,第一个派生类名为 Polygon,从 Shape (或基类)继承,意味着它可以访问 Shape 类的成员,包括 display() 方法。 第二个派生类名为 Triangle,从 Polygon 类继承,使得 Triangle 类可以使用 display() 和 sides() 方法。 主函数 创建了一个名为 myTriangle 的 Triangle 实例。 display() 会先通过调用 Triangle 类进而访问 Shape 类中的 display() 方法,这是因为继承的关系。 同样地,sides() 会从 Polygon 类继承 sides() 方法, 而 myTriangle.type() 从 Triangle 类的 type() 方法。