面向对象语言的多态性问题

一直以来在我们所见到的概念中,面向对象语言有三大特性:封装性、继承和多态。

封装性:

在面向对象的语言中存在有类的概念,因此实现了数据和行为(方法)的封装。在外部表现为统一的类或对象。在类的外部要訪问类的公有成员(私有成员通过类或对象也是不能訪问的),必须通过类名或对象来訪问。

继承:

类的继承是在现有类的基础之上创建新的类,实现了代码的重用,而且扩展了现有类的功能的机制。关于继承方面,有的语言支持单继承和多继承(如C++),但有的语言仅仅支持单继承(Java语言)。

多态:

多态是程序设计语言的一个重要特征。如今好多人都会有一种误解:觉得仅仅有面向对象语言才支持多态。

事实上不然,公认的世界上第一种面向对象语言为simula。诞生于1962年。

而诞生于1959年的函数式编程语言LISP天生就支持多态。但LISP却不属于面向对象语言。由于它根本就不存在类的概念。

原文地址:https://www.cnblogs.com/tlnshuju/p/7261742.html