why: 關于動物運動這個例子,可能無法展示多態的好處。我們來考慮另外一個多態的例子,U盤。U盤的技術含量可能不是很高,有很多廠家都在設計和生產,就是說U盤有多種不同的實現,這就是U盤的多態。U盤的多態性對消費者來說是有好處的,選擇多了,你可以在價格、質量和外觀等方式做出平衡,選擇你中意的U盤。多態的前提是接口的一致性,否則多態造成的麻煩遠勝于它帶來的好處。不管U盤的體積、顏色和質量如何,它都必需遵循相應的USB 標準,這些U盤在任何帶USB接口的電腦上都可以使用。
how: 多態在 C語言中通常用函數指針來實現,函數指針定義了函數的原型,即它的參數和返回值的描述,以及函數的意義,不同的函數可以有相同的函數原型,比如排序函數,無論是快速排序還是歸并排序,它們的實現不一樣,但函數原型可以一樣。在不同的情況下,讓函數指針到不同的函數實現上,這就實現了多態。
類的三個層次:
類這個概念比較微妙,即使在軟件開發領域,不同的人提到這個概念所指的內容也不一樣。一些大師早就注意到了這一點,為了讓這個概念在不同情況下,具有較準確的意義,他們建議從三個層次看待類這個概念:
1. 概念層(Conceptual)