We consider next the idea of overloading. The term overloading refers to the use of a name, the handle by which we access various data and function values. A single function name which is used to denote two or more function bodies is said to be overloaded.

This is not something that is new in object-oriented langauges. In most computer langauges the symbol for addition is overloaded with at least two distinct meanings, integer and floating point addition. Here, as in the general case, the determination of which function to execute is made based on the types of the arguments.

This determination can be made, again depending upon your language, either at compile time or at run-time.

Now, you should not confuse simple overloading with overriding or refinement. For overloading the functions need not be related by class in any way.

[audio] [real] Text to accompany slide7, in Chapter 14 of An Introduction to Object-Oriented Programming