天天看點

面向對象語言的多态性問題

一直以來在我們所見到的概念中,面向對象語言有三大特性:封裝性、繼承和多态。

封裝性:

在面向對象的語言中存在有類的概念,是以實作了資料和行為(方法)的封裝。在外部表現為統一的類或對象。在類的外部要訪問類的公有成員(私有成員通過類或對象也是不能訪問的),必須通過類名或對象來訪問。

繼承:

類的繼承是在現有類的基礎之上建立新的類,實作了代碼的重用,而且擴充了現有類的功能的機制。關于繼承方面,有的語言支援單繼承和多繼承(如C++),但有的語言僅僅支援單繼承(Java語言)。

多态:

多态是程式設計語言的一個重要特征。如今好多人都會有一種誤解:覺得僅僅有面向對象語言才支援多态。

事實上不然,公認的世界上第一種面向對象語言為simula。誕生于1962年。

而誕生于1959年的函數式程式設計語言LISP天生就支援多态。但LISP卻不屬于面向對象語言。由于它根本就不存在類的概念。