有了繼承,指向基類型別的指標或引用就可以被用來指向派生類型別的物件。然後就可以編寫程式來操縱這些指標或引用而不用考慮它們所指向的物件的實際型別。用乙個基類指標或引用來操縱多個派生型別的能力被稱為多型性。
在c++中,多型性分為兩種,一種稱為編譯時多型,另一種為執行時多型
分別解釋下:
1.編譯時多型,也就是函式過載,所謂函式過載是指同乙個函式名可以對應著多個函式的實現,具體呼叫哪個按照由引數個數,引數型別等來決定,這個簡單,就不說了
2.執行時多型,就是虛函式。 在定義了虛函式後,可以在基類的派生類中對虛函式重新定義,以實現你所想要的功能。
比如:class a
void display()
};class b : public a
void display(a& a)
};那麼
a* a = new a();
a->test();呼叫的是基類的
a* b = new b();
b->test();呼叫的是派生類的。
如果在a中不申明virtual,
那麼a* b = new b();
b->test(); 會呼叫基類的
C 中繼承和多型的研究
在這個部分,我將構建兩個類a和b,b是a的子類。namespace csharppolymorphism class b a class program 執行結果為 i m a,my value a,got value a i m b,my value b,got value b i m a,my ...
c 中繼承與多型的理解
include using namespace std class base virtual base void show private int ma class derive public base derive virtual void show void test private int m...
java中繼承和多型區別
嘿嘿,舉乙個比較容易理解的例子。主人公 李啟銘 李剛 經典語錄 我爸是李剛 例子開始 從李啟銘說的那句 我爸是李剛,是很有科學依據的,用程式設計的原理看,它符合繼承和多型的物件導向程式設計的這2大特性。先說一說,繼承,繼承就是子類可以繼承父類中的屬性和方法。包括私有的屬性和方法,只是由於私有的方法無...