Method overloading allows multiple methods in the same class to have the same name. Overloaded methods must be different from each other by either:
There is no method overloading based on the return type.
The compiler will automatically infer which overloaded method to call based on the number of parameters and their type.