For example, rather than have a differently named function to sort each type of array
Instead use the same name with different parameter types.
Sort_Int( Int Array Type) ; Sort_Doubles( Double Array Type) ;
The compiler is able to call the appropriate function depending on the parameter type
Sort( Int Array Type ) ; Sort( Double Array Type ) ;
Operator OverloadingSimilar to function overloading this allows programmers to redefine operators such as +, -, * etc. For example in a class for complex numbers where each number has a real and imaginary part, overloaded operators allow code such as this to work.
So long as + is overloaded for the type complex.
complex c = a + b;