Ad-hoc Polymorphism

In programming languages, ad-hoc polymorphism is a kind of polymorphism in which polymorphic functions can be applied to arguments of different types, because a polymorphic function can denote a number of distinct and potentially heterogeneous implementations depending on the type of argument(s) to which it is applied. It is also known as function overloading or operator overloading. The term "ad hoc" in this context is not intended to be pejorative; it refers simply to the fact that this type of polymorphism is not a fundamental feature of the type system. This is in contrast to parametric polymorphism, in which polymorphic functions are written without mention of any specific type, and can thus apply a single abstract implementation to any number of types in a transparent way. This classification was introduced by Christopher Strachey in 1967.

Read more about Ad-hoc Polymorphism:  Early Binding, Late Binding, Example

Other articles related to "polymorphism":

Polymorphism (computer Science) - Forms of Polymorphism - Ad-hoc Polymorphism
... Chris Strachey chose the term ad-hoc polymorphism to refer to polymorphic functions which can be applied to arguments of different types, but which behave differently depending on the type of the argument to which ... not intended to be pejorative it refers simply to the fact that this type of polymorphism is not a fundamental feature of the type system ...