polymorphism

Polymorphism means "many forms". Polymorphism is the ability of a single interface to support multiple underlying forms. 
* Compile Time Polymorphism: It means compiler knows which function should be called when a call is made. Compile time polymorphism includes gererics, function overloading and operator overloading. 
* Runtime Polymorphism: It is supported by virtual method and dynamic binding. A virtual method is called according to the type of object pointed or referred, not according to the type of pointer or reference. In other words, virtual methods are resolved at runtime.