Method overloading in Java allows a programmer to declare multiple methods with the same name but different signatures. This is done by changing the argument list or type of arguments. An example shows two addition methods that take in different number of integer parameters. When each method is called, it prints a message and returns the sum, demonstrating that the correct method is invoked based on the number of arguments passed.