Polymorphis
--------------------
Polymorphism means ability to take more than one form.
Polymorphism is mainly divided into :
1) Run Time polymorphism:
a) Virtual function
2) Compile Time Polymorphism :
a) function overloading
b) operator overloading
Compile time polymorphism is used for Function overloading
Runtime is used for implementing virtual functions,overriding etc
Overloading: is an example of compile time polymorphism.(Because the function to call is decide at compile time)
example:
Math math=Math();
math.add(10,20)
math.add(10,20,30)
Overriding: an example of compile time polymorphism.(Because the function to call is decide at runtime)
example:
superclassObject.add(10,10)
subclassObject.add(10,10)
Here in the case of Overriding the method which will call is decide will decide at the runtime.