Polymorphism

Polymorphism is the provision of a single interface to entities of different types or the use of a single symbol to represent multiple different types.

The most commonly recognized major classes of polymorphism are:

  1. Ad hoc polymorphism: defines a common interface for an arbitrary set of individually specified types (function overloading or operator overloading).

  2. Parametric polymorphism: when one or more types are not specified by name but by abstract symbols that can represent any type (templates in C++ and D, generics in C# and Java).

  3. Subtyping (also called subtype polymorphism or inclusion polymorphism): when a name denotes instances of many different classes related by some common superclass. (you can pass an object to a method that takes more generic type – Liskov substitution principle)

Last updated