Dynamic binding

from The Free On-line Dictionary of Computing (8 July 2008)
dynamic binding

   The property of {object-oriented programming} languages where
   the code executed to perform a given operation is determined
   at {run time} from the {class} of the operand(s) (the receiver
   of the message).  There may be several different classes of
   objects which can receive a given message.  An expression may
   denote an object which may have more than one possible class
   and that class can only be determined at run time.  New
   classes may be created that can receive a particular message,
   without changing (or recompiling) the code which sends the
   message.  An class may be created that can receive any set of
   existing messages.

   {C++} implements dynamic binding using "{virtual member
   functions}".

   One important reason for having dynamic binding is that it
   provides a mechanism for selecting between alternatives which
   is arguably more robust than explicit selection by
   conditionals or {pattern matching}.  When a new {subclass} is
   added, or an existing subclass changes, the necessary
   modifications are localised: you don't have incomplete
   conditionals and broken patterns scattered all over the
   program.

   See {overloading}.
    

[email protected]