讨论/《面向对象是怎样工作的(第 2 版)》 - 2.4 多态让消息的发送方法通用/
《面向对象是怎样工作的(第 2 版)》 - 2.4 多态让消息的发送方法通用

文章中介绍的主要是动态多态,也叫做运行时多态,主要实现方式是继承+重写
另外补充一下静态多态的概念,或者说编译期多态,例如方法重载、泛型编程都是静态多态的实现形式。
两者最主要的差别就是调用决议时机不同。动态多态具体调用哪个类的方法的时机在运行期决议,而静态多态在编译期完成。

  • 《Modern C++ Design》
    11.1 What Are Multimethods?
In C++, polymorphism essentially means that a given function call can be bound to different implementations, depending on compile-time or runtime contextual issues.
Two types of polymorphism are implemented in C++:
* Compile-time polymorphism, supported by overloading and template functions
* Runtime polymorphism, implemented with virtual functions
22
展开全部 26 讨论