Major Forms of Polymorphism in Object Oriented Languages
There are four major forms of polymorphism in object-oriented languages:
Overloading (ad hoc polymorphism) -- one name that refers to
two or more different implementations.
Overriding (inclusion polymorphism) -- A child class
redefining a method inherited from a
parent class.
The Polymorphic Variable (assignment polymorphism) -- A
variable that can hold different
types of values during the course of execution. It is called Pure Polymorphism
when a polymorphic variable is used as a parameter.
Generics (or Templates) -- A way of creating general tools or classes
by parameterizing on types.