What is the difference between method overloading and overriding?

Copied from https://stackoverflow.com/questions/12374399/what-is-the-difference-between-method-overloading-and-overriding

Method overloading deals with the notion of having two or more methods in the same class with the same name but different arguments.

Method overriding means having two methods with the same arguments, but different implementations. One of them would exist in the parent class, while another will be in the derived, or child class. The @Override annotation, while not required, can be helpful to enforce proper overriding of a method at compile time.