介绍
多态指为不同数据类型的实体提供统一的接口,或者使用一个单一的符号来表示多种不同的类型。
分类
特设多态
特设多态是程序设计语言的一种,多态函数有多个不同的实现,依赖于其实参而调用相应版本的函数。如函数重载就是特设多态的一种,除此之外,运算符重载也是特设多态的一种。
参数多态
参数多态是指声明与定义函数,复合类型,变量时不指定其具体的类型,而吧这部分类型作为参数使用,使得该定义对各种具体类型都适用。 比如说Java中的泛型就是参数多态的一种。参数多态另一个应用比较广泛的地方就是函数式编程。
子类型
子类型多态就是Java中常见的多态,多态需要满足三个条件
- 有类继承或者接口实现。
- 子类要重写父类的方法。
- 父类的引用要指向子类的对象。
其他
还有一种说法是多态分为静态多态和动态多态。只有运行期才知道真正调用的是动态多态。在编译器就知道真正调用的是静态多态。因此我们的上述多态就是动态多态,而重载是一个编译期概念,因此可以理解成是静态多态。
标签:函数,多态,重载,参数,特设,类型 From: https://blog.51cto.com/u_15487307/5868865