Dynamic dispatch is the runtime mechanism that decides which method implementation to run based on the object's actual type, not the variable's declared type. Most class-based languages implement it with a virtual method table (vtable).
The vtable model
Each class has a table of pointers to its method implementations. Each object holds a hidden pointer to its class's vtable. A virtual call becomes:
