174 字
1 分钟
多态
2024-08-31
无标签

对不同类型的数据提供相同的接口

  • Ad hoc polymorphism (特殊的多态)
  • subtype polymorphism (子类型多态)
  • Parametric polymorphism (参数化多态)

adhoc多态#

  • 函数重载 比如
int foo(int a);
void foo(float b);

foo具有多个类型签名foo的实际类型是int -> int | float -> void

  • 运算符重载(把运算符看成函数)

Subtype polymorphism#

subtyping是类型多态其中一种形式,它指的是subtype(一种数据类型)和另一种数据类型(supertype)的一种可替换关系。这意味着在我们的程序中,supertype的所有函数调用,可以被subtype完全替换。

Parametric polymorphism#

比如

template <typename T>
auto id(T v) -> T { return v; }
多态
https://blog.pipago360.site/posts/语言/pl/多态/
作者
Ashenye
发布于
2024-08-31
许可协议
CC BY-NC-SA 4.0