User:O11c/Polymorphism

Polymorphism is the ability of a programming language to provide different (but sometimes similar) semantics for the same syntax, depending on the types of the operands.

There are two kinds of polymorphism: static polymorphism and dynamic polymorphism.

Static Polymorphism

 * templates
 * function overloading
 * overloaded builtins

Dynamic Polymorphism

 * virtual methods
 * Java methods are virtual by default
 * C++ methods are only virtual if explicitly made such.