C++单继承与多继承的区别
单一继承: 单一继承是一种派生类只从一个基类继承公共、私有或保护属性的方式。在单一继承中,派生类使用单个基类的特征或成员。根据在继承父类或基类时指定的访问说明符,这些基类成员可以由派生类或子类访问。
语法:
单一继承示例:
输出:
在这个例子中,A是基类或父类,B是派生类或子类。
多重继承: 多重继承是指派生类获得两个或更多基类的方式。在多重继承中,允许派生类使用继承的基类的联合特征。每个基类通过通知每个基类单独的访问说明符被派生类继承。根据在继承父类或基类时指定的访问说明符,这些基类成员可以由派生类或子类访问。
输出:
输出
语法:
多继承的示例:
输出:
在这个示例中,A和B是基类,C是派生类。
输出
单重继承与多重继承的区别:
序号 | 单一继承 | 多重继承 |
---|---|---|
1. | 单一继承是指派生类只继承一个基类。 | 而多重继承是指派生类继承两个或者更多的基类。 |
2. | 在单一继承中,派生类使用单个基类的特征。 | 而在多重继承中,派生类综合使用所继承的多个基类的特征。 |
3. | 与多重继承相比,单一继承的运行时间更短,因为开销更小。 | 而多重继承的运行时间更长,因为开销更大。 |
4. | 单一继承更接近于专业化。 | 相比之下,多重继承更接近于概括化。 |
5. | 单一继承的实现方式为 Class DerivedClass_name : access_specifier Base_Class{}; 。 | 而多重继承的实现方式为 Class DerivedClass_name : access_specifier Base_Class1, access_specifier Base_Class2, ….{}; 。 |
6. | 单一继承相对于多重继承更加简单。 | 相比之下,多重继承相对于单一继承更加复杂。 |
7. | 单一继承可以在任何编程语言中实现。 | C++支持多重继承,但是多重继承不能在任何编程语言中实现(例如,C#、Java不支持多重继承)。 |
8. | 单一继承构建继承树。 | 多重继承构建了继承有向无环图(DAG)。 |