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: