What is the difference between method overriding and method overloading in Java?
Method overriding changes the return type, while method overloading changes the method parameters.
You're partially correct, but method overloading is based on different parameters, not return types.
Can you explain why the return type needs to be the same or covariant in method overriding?