多態的字面的意思就是“多種狀態”。在面向對象中,接口的多種不同的實現方式即為多態。引用Charlie Calverts對多態的描述——多態性是允許你將父對象設置成為一個或更多的他的子對象相等的技術,賦值之后,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。多態性在Object Pascal和C++中都是通過虛擬函數實現的。

多態有三種實現方式:
1 接口:接口不能有實例成員;接口可以被多繼承。 接口不能包含構造函數

2 虛函數(重寫):
方法的重載: 在同一個類中,出現多個同名的方法,參數列表不同,與返回值類型,修飾符無關
方法的重寫: 子類中出現和父類中一模一樣的方法(包括返回值類型,方法名,參數列表)

3抽象:如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。使用關鍵字 abstract 來聲明。包含抽象方法的類一定得是抽象類,但抽象類中可以包含實例成員,這些實例成員也將遺傳給兒子 抽象類不可以被實例化,但可以有構造函數,它的構造函數會在子類實例化的時候調用
抽象類的特點:
1 抽象類不能實例化
2 抽象類不一定包含抽象方法,但是一個類包含抽象方法,它就一定是抽象類。
3 抽象類中的抽象方法只是聲明,不包含方法體。
4 繼承抽象類的子類如果不是抽象類就必須重寫父類的所有抽象方法。
5.構造方法,類方法(用 static 修飾的方法)不能聲明為抽象方法。

