Overloading and Overriding is a good example of Polymorphism (One name, many Forms).
Method Overloading
When we have more than one method with same name with in class with different parameters then we call it method overloading. Method overloading can be achieve by changing a signature of method in order of parameters, taking different data types. Return type can be different. Overloading is to add a new method with same name with in class where only arguments will be differ.
Method overloading is called as Compile Time Polymorphism.
Method Overriding
When we have a method of base class and want to change the implementation of existing method in child class using inheritance. So process of redefining the existing base class method with same name, same parameters and return type in child class called as overriding. The Overriding is to change existing method in derived class. Base class method will be called as overridden method and child class method will be called as override method.
Method overriding is called as Run Time Polymorphism.