¿Cuál es la diferencia entre overloading y overriding de métodos?
Opciones
- Overload: mismo nombre, otros parámetros. Override: la subclase reemplaza (Opción correcta)
- Son solo dos nombres para la misma funcionalidad
- El overloading necesita herencia; el overriding funciona en una clase
- El overriding cambia los parámetros; el overloading, el tipo de retorno
Respuesta
Overloading: mismo nombre, distintos parámetros en la misma clase. Overriding: una subclase reemplaza un método del padre con la misma firma
Por qué
Overloading: varios métodos con el mismo nombre pero distintas listas de parámetros, por ejemplo print(int) y print(String). El compilador elige el que coincide en tiempo de compilación.
Overriding: una subclase ofrece su propia versión de un método heredado con el mismo nombre y parámetros, normalmente con @Override. La JVM elige en tiempo de ejecución según el tipo real del objeto (polimorfismo).
Recuerda
Overload = mismo nombre, otros parámetros. Override = reemplazar en una subclase.