The selection of a method to run based on both a) its signature, and b) the type of one or more of its arguments. Feature found in all OO languages. In many languages, all method calls are potentially dynamic (though StaticDispatch may be used as an optimization). In others, such as CeePlusPlus, functions have to be explicitly declared to use dynamic dispatch (the virtual keyword does this in C++; a virtual function is little more than one that uses dynamic dispatch).
There are several types of DynamicDispatch: