通用多態

通用多態

在面向對象的多態性中,通用多態表現為參數多態和包含多態兩種多態。

在面向對象的多態性中:


通用多態包含了參數多態和包含多態兩種多態
參數多態(parametric)
採用參數化模板,通過給出不同的類型參數,使得一個結構有多種類型。
兩個packages的:
·應用內涵一致:提供的都是堆棧抽象操作。
·實現結構相似:採用同類數據結構,實現代碼相同。
·元素的類型不同,一些用常量表示的細節不同。

對比


函數是相似的語句序列的一種涵義明確的抽象,用函數中的語句表示相同的部分,用形參指明不同的部分,用實參體現不同的部分。但是,函數的參數只能是數據,不能是類型。
類屬在一個抽象結構中允許以參量形式來表示可變的類型﹑函數﹑常數﹑數據值,在編譯時(靜態)進行實例化,結果是一個具體的結構(類型﹑函數等)。而且類型的實例化可以靜態進行,也可以動態進行,但結果都是一個值。
包含多態(inclusion)
同樣的操作可用於一個類型及其子類型。(注意是子類型,不是子類。)包含多態一般需要進行運行時的類型檢查。如Pascal中的子界。
幾點需要注意的地方:
1.包含多態的操作存在著逆單調(Anti-mornotonic)。即一個類型t上的操作,當其定義域縮小成t的一個子類型時,其值域應不小於t.