Overloading: Overloading is determined at the compile time. It occurs when several methods have same names with:
Different method signature and different number or type of parameters.
Same method signature but different number of parameters.
Same method signature and same number of parameters but of different type