多態概念:
多態(Polymorphism)按字面的意思就是“多種狀態”。在面向對象語言中,接口的多種不同的實現方式即為多態。引用Charlie Calverts對多態的描述——多態性是允許你將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之后,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。
多態指同一個實體同時具有多種形式。它是面向對象程序設計(OOD)的一個重要特征。如果一個語言只支持類而不支持多態,只能說明它是基於對象的,而不是面向對象的。簡單點說:“一個接口,多種實現”,就是同一種事物表現出的多種形態。
C++多態的實現:
C++中的多態性具體體現在運行和編譯兩個方面。運行時多態是動態多態,其具體引用的對象在運行時才能確定。編譯時多態是靜態多態,在編譯時就可以確定對象使用的形式。C++中,實現多態有以下方法:虛函數,抽象類,重載,覆蓋,模版。
動態多態性:在程序運行過程中才動態地確定操作所針對的對象,又稱為運行時的多態性,一般通過虛函數(virtual function)+繼承實現,關鍵字virtual。
靜態多態性:函數重載、運算符重載(本質上也是函數重載);
