Overloading is when you have 2 or more methods with the same name, but with different parameters. http://en.wikipedia.org/wiki/Method_overloading
Overriding is when the methods are not static and the names and parameters are the same.
For example,
public class A {
public void test1(String a) {System.out.println(a);}
}
public class B extends A {
public void test1(String a) {System.out.println(a);}
}
Then you are overriding the method test1.
Hiding only happens if both methods are static.
The distinction between hiding a static method and overriding an instance method has important implications:
The version of the overridden instance method that gets invoked is the one in the subclass. The version of the hidden static method that gets invoked depends on whether it is invoked from the superclass or the subclass.
From http://docs.oracle.com/javase/tutorial/java/IandI/override.html