在 C++ 中,繼承是一種允許我們從另一個類獲得屬性和方法的機制。這是一種建立新類的方式,其中新類將繼承現有類的成員。這有助於代碼重用和建立有層次的類結構。
C++ 支持以下五種繼承:
單一繼承(Single Inheritance):一個子類從單一父類繼承。
多層級繼承(Multilevel Inheritance):一個類從另一個類繼承,而該類又從另一個類繼承。
多重繼承(Multiple Inheritance):一個類同時從多個類繼承。
階層式繼承(Hierarchical Inheritance):多個類從單一類繼承。
混合繼承(Hybrid Inheritance):這是兩種或兩種以上繼承類型的組合。
以下是每種繼承類型的簡單例子:
#include <iostream>
// Single Inheritance
class Base {
public:
void baseFunction() {
std::cout << "Base function" << std::endl;
}
};
class DerivedSingle : public Base {};
// Multilevel Inheritance
class DerivedLevel1 : public Base {};
class DerivedLevel2 : public DerivedLevel1 {};
// Multiple Inheritance
class Base1 {
public:
void base1Function() {
std::cout << "Base1 function" << std::endl;
}
};
class Base2 {
public:
void base2Function() {
std::cout << "Base2 function" << std::endl;
}
};
class DerivedMultiple : public Base1, public Base2 {};
// Hierarchical Inheritance
class DerivedHierarchical1 : public Base {};
class DerivedHierarchical2 : public Base {};
// Hybrid Inheritance (Combination of multiple and hierarchical)
class DerivedHybrid : public DerivedHierarchical1, public Base2 {};
int main() {
DerivedSingle ds;
ds.baseFunction(); // Single Inheritance
DerivedLevel2 dl2;
dl2.baseFunction(); // Multilevel Inheritance
DerivedMultiple dm;
dm.base1Function(); // Multiple Inheritance
dm.base2Function(); // Multiple Inheritance
DerivedHierarchical1 dh1;
DerivedHierarchical2 dh2;
dh1.baseFunction(); // Hierarchical Inheritance
dh2.baseFunction(); // Hierarchical Inheritance
DerivedHybrid dh;
dh.base1Function(); // Hybrid Inheritance (from DerivedHierarchical1)
dh.base2Function(); // Hybrid Inheritance (from Base2)
return 0;
}
在這個例子中:
DerivedSingle 類示範了單一繼承。
DerivedLevel2 類通過 DerivedLevel1 示範了多層級繼承。
DerivedMultiple 類從 Base1 和 Base2 示範了多重繼承。
DerivedHierarchical1 和 DerivedHierarchical2 類從同一個 Base 示範了階層式繼承。
DerivedHybrid 類示範了混合繼承,它通過 DerivedHierarchical1 進行多層級繼承,同時也是多重繼承,因為它還從 Base2 繼承。
每個繼承類型都有其特定用途和應用場景,並可以根據需求來選擇適當的繼承策略。