Method overloading requires different parameter lists (different number, types, or order of parameters). Return type alone is insufficient because the compiler wouldn't know which method to call at compile time - the signature must be unique based on parameters, not return type.