C++中的多层继承



多层继承是一种继承类型,其中一个类派生自另一个派生类,创建了一个继承链,允许它通过多个级别的类传递其属性和行为,或者从其前身继承。

实现多层继承

要实现多层继承,请以分层方式定义类,其中一个类继承自另一个类。

语法

C++中多层继承的语法:

class baseClass {
   //Here's a base class members
};

class derivedClass1 : public baseClass {
   // Members of derivedClass1
};

class derivedClass2 : public derivedClass1 {
   // Members of derivedClass2
};

这里:

  • baseClass 是其他类派生的顶级类。
  • derivedClass1 是继承自baseClass的类。
  • derivedClass2 继承自derivedClass1,创建了一个多层结构。

多层继承的框图

请参见下面的框图,该图演示了多层继承:

C++ Multilevel Inheritance

根据上图,“Shape”是基类,它派生到“Polygon”类,“Polygon”类进一步派生到“Triangle”类,以实现多层继承。

多层继承的示例

在下面的示例中,我们实现了多层继承:

#include <iostream>
using namespace std;

// Base class
class Shape {
   public:
      void display() {
         cout << "This is a shape." << endl;
      }
};

// First derived class
class Polygon : public Shape {
   public:
      void sides() {
         cout << "A polygon has multiple sides." << endl;
      }
};

// Second derived class
class Triangle : public Polygon {
   public:
      void type() {
         cout << "A triangle comes under a three-sided polygon." << endl;
      }
};

int main() {
   Triangle myTriangle;

   myTriangle.display();  // From Shape
   myTriangle.sides();    // From Polygon
   myTriangle.type();      // From Triangle

   return 0;
}

输出

This is a shape.
A polygon has multiple sides.
A triangle comes under a three-sided polygon.

解释

  • 首先,创建一个名为Shape的基类,它有一个公共方法display(),该方法打印“This is a shape”。
  • 接下来,名为Polygon的第一个派生类继承自Shape(或基类),这意味着它可以访问Shape类的成员,包括display()
  • 第二个派生类名为Triangle,它继承自Polygon类,这允许Triangle使用display()sides()方法。

主函数

  • 创建名为myTriangle的Triangle实例。
  • display()将首先通过调用Triangle类然后调用Shape类来访问display()方法,因为继承关系。
  • 同样,sides()将继承自Polygon类sides()
  • myTriangle.type()则继承自Triangle类type()
广告