Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

118
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!