| Overloading | Overriding |
| Overloading is also called static/early binding polymorphism. | Overriding is also called dynamic/late binding polymorphism. |
| It happens at compile time. | It happens at runtime. |
| It adds or extend more to the method functionality. | It changes the existing functionality of the method. |
| Methods have different parameter lists or type or the return type. | Methods have the same signature as the parent class method. |
| Static binding happens in overloading. | Dynamic binding happens in overriding. |