|
Register Now!
|
|
Register now for vtap for the fastest and easiest way to watch web video on your mobile device!
|
|
In computer science, polymorphism is a programming language feature that allows values of different data types to be handled using a uniform interface. The concept of polymorphism applies to both data types and functions. A function that can evaluate to or be applied to values of different types is known as a polymorphic function. A data type that can appear to be of a generalized type (e.g., a list with elements of arbitrary type) is designated polymorphic data type like the generalized type from which such specializations are made.
There are two fundamentally different kinds of polymorphism, originally informally described by Christopher Strachey in 1967. If the range of actual types that can be used is finite and the combinations must be specified individually prior to use, it is called Ad-hoc polymorphism. If all code is written without mention of any specific type and thus can be used transparently with any number of new types, it is called parametric polymorphism. Luca Cardelli and Peter Wegner later modified Strachey's definition by replacing parametric polymorphism with universal polymorphism, which includes parametric polymorphsim and inclusion polymorphism (Cardelli, 1985).
In object-oriented programming, ad-hoc polymorphism is generally supported through object inheritance, i.e., objects of different types may be treated uniformly as members of a common superclass. Ad-hoc polymorphism is also supported in many languages using function and method overloading.
Parametric polymorphism is widely supported in statically typed functional programming languages. In the object-oriented programming community, programming using parametric polymorphism is often called generic programming.






