Object-Orientation FAQ Please visit the new site and make a bookmark to it. This location will go away soon.
Dynamic binding has two forms, static and dynamic.
It is not known which function will be called for a virtual function at run-time because a derived class may override the function, in which case the overriding function must be called. Statically determining all possibilities of usage is undecidable. Dynamic binding allows new objects and code to be interfaced with or added to a system without affecting existing code and eliminates switch statements. This removes the spread of knowledge of specific classes throughout a system, as each object knows what operation to support. It also allows small packages of behavior, improving coherence and loose coupling.