Method overloading in Java requires differences in the parameter list (number, type, or order of parameters). Return type alone is insufficient to distinguish overloaded methods because the compiler cannot determine which method to call based only on the return type, especially when the method call result isn't assigned or used.