Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

112
Vistas
¿Sobrecarga o anulación de métodos?

Tenemos una clase principal y secundaria, que tiene un método con el mismo nombre pero los argumentos son primitivos y envoltorios. ¿Podría alguien explicar el motivo por el que esto se denominaría anulación de métodos y sobrecarga de métodos? Ejecutar este programa invocaría el método principal, que anularía y no sobrecargaría, buscando explicaciones.

 class Parent { public void takeValue(int a) { System.out.println("take value method from parent is invoked"); } } class Child extends Parent { public void takeValue(Integer a) { System.out.println("take value method from child is invoked"); } public static void main(String[] args) { Parent p = new Child(); p.takeValue(new Integer(51)); } }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El método está sobrecargado.

Ejecutar este programa invocaría el método principal, que anularía y no sobrecargaría

Sí. Está llamando a takeValue en una Parent principal, lo que significa que el compilador buscará una coincidencia de firma en la Parent . La sobrecarga ni siquiera es visible aquí (las firmas se comparan según los tipos estáticos, es decir, Java encuentra el método según el tipo de datos declarado de la variable en la que se llama al método, no con el tipo de datos del objeto asignado a la variable , que sería una cosa de tiempo de ejecución).

Y debido a que el compilador no considera public void takeValue(Integer a) al verificar la invocación del método, p.takeValue(new Integer(51)); está vinculado a Parent.takeValue(int) en virtud del autoboxing (habría coincidido con el otro método si ambos estuvieran visibles, o declarados en la clase Parent en este ejemplo).

over 4 years ago · Santiago Trujillo Denunciar

0

Esto es sobrecargar. Tiene el mismo nombre pero el tipo de parámetros de entrada son diferentes.

Para confirmarlo, obtendrá un error cuando intente adjuntar la anotación @Override .

Integer e int son tipos diferentes.

over 4 years ago · Santiago Trujillo Denunciar

0

En Java , la Overriding y la Overloading son conceptos muy importantes. Para comprender completamente las diferencias, le recomiendo que lea esto:

  • Anulación frente a sobrecarga en Java
  • 16 SOBRECARGA de Java frente a ANULACIÓN. Tutorial de Java orientado a objetos.
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda