C++ 混合继承
继承被定义为一个类继承另一个类的属性的过程。被继承属性的类称为基类或者父类。继承基类属性的类(父类)称为派生类。
例如,一个儿子继承了父亲的属性。本文将简要介绍混合继承及其示例。
定义
将多重、简单和分层继承等多种继承类型组合起来称为混合继承。
在简单继承中,一个类从一个基类派生。在多重继承中,一个类从两个类派生,其中一个父类也是派生类。在分层继承中,多个派生类从一个基类创建。
在混合继承中,有一种或多种继承类型的组合。例如,单一继承和分层继承的组合。因此,混合继承也被称为多路径继承。
示例
这个图表显示了混合继承,它是单一继承和多重继承的结合。
单一继承 – 类B继承了类A。因此是单一继承的一个示例。
多重继承 – 类D从多个类(上面显示的B和C)继承。因此是多重继承的一个示例。
上述示例的语法代码
Class A
{
statement(s)
}:
Class B: public A
{
statement(s);
};
Class C
{
statement(s);
};
Class D: public B, public C
{
statement(s);
};
这个示例展示了多级继承和单一继承的组合。
多级继承 – 如上图所示,Class B继承自Class A,Class C继承自Class B。因此,这是一个多级继承的示例。
单一继承 – 从上图可以看出,Class D继承自Class B。因此,这是一个单一继承的示例。
上述示例的语法代码
Class A
{
statement(s);
};
Class B: public A
{
statement(s);
};
Class C: public B
{
statement(s);
};
Class D: public B
{
statement(s);
};
混合继承的现实示例
在现实世界的场景中,我们都开车。所以 车 是属于 交通工具 类的一个类。这是单继承的一个实例。
如果我们谈论 法拉利 ,那是赛车和普通车的结合。所以 类Ferrari 是由 类Car 和 类Racing 派生出来的。
因此,上面的示例是单重和多重继承。这是混合继承(单重 + 多重)的完美示例。
代码
#include
using namespace std;
class vehicle
{
public:
vehicle()
{
cout<< "This is a vehicle\n";
}
};
class Car: public vehicle
{
public:
Car()
{
cout<< "This is a car\n";
}
};
class Racing
{
public:
Racing()
{
cout<< "This is for Racing\n";
}
};
class Ferrari: public Car, public Racing
{
public:
Ferrari()
{
cout<< "Ferrari is a Racing Car\n";
}
};
int main() {
Ferrari f;
return 0;
}
输出
This is a vehicle
This is a car
This is for Racing
Ferrari is a Racing Car