¿Cuál es la mejor manera de responder a esta pregunta de la entrevista ‘¿Cuál es la diferencia entre sobrecargar y anular’?

Cuando JVM invoca un método no estático, selecciona el método a invocar en función del tipo real del objeto (que solo se conoce en tiempo de ejecución) mientras que

para métodos estáticos, el método para invocar se selecciona en función del tipo de referencia declarado (y, por lo tanto, se conoce en tiempo de compilación). Entonces, la unión estática en

Java ocurre durante el tiempo de compilación (basado en el tipo de clase declarado) mientras que el enlace dinámico ocurre durante el tiempo de ejecución (según el objeto real en el que

se invoca el método).

Reemplazar no es más que redefinir un método en la clase secundaria para la cual la clase principal ya ha proporcionado una implementación. Gracias a dinámico

vinculante, en tiempo de ejecución, JVM verificará el objeto e invocará el método correcto (es decir, el método de la clase secundaria) incluso si la referencia es de tipo primario

Digamos que tiene una clase llamada MyJavaBean que extiende java.lang.Object. Ahora, la clase Object ya proporciona una implementación del método igual

pero digamos que elegiste anularlo en MyJavaBean

El siguiente código, en ambos casos, invocará la definición del objeto es la clase MyJavaBean en lugar de la definición en la clase Object

Objeto o1 = nuevo MyJavaBean ();
o1.equals (nuevo MyJavaBean ());

MyJavaBean o2 = new MyJavaBean ();
o2.equals (nuevo MyJavaBean ())

Tenga en cuenta que el método reemplazado no necesita tener exactamente el mismo tipo de retorno, pero sí, existen algunas restricciones. Especificación del lenguaje Java

dice,
Si una declaración de método d1 con tipo de retorno R1 anula u oculta la declaración de otro método d2 con tipo de retorno R2, entonces d1 debe ser return-

sustituible por tipo para d2. Si R1 no es un subtipo de R2, se produce una advertencia no comprobada en tiempo de compilación

los métodos estáticos están vinculados en tiempo de compilación y, por lo tanto, no pueden anularse.

La sobrecarga es tener dos métodos con un nombre idéntico pero una firma diferente en la misma clase. Tenga en cuenta que tanto en C ++ como en Java, los métodos no pueden ser

sobrecargado según el tipo de retorno. También tenga en cuenta que la firma exacta del método está vinculada en tiempo de compilación y, por lo tanto, tiene en cuenta la declaración declarada

tipo y no el tipo real. ¿Cuál de los métodos sobrecargados de la clase se elegirá para una invocación de método en particular se determinará en

Tiempo de compilación mediante el procedimiento de resolución de sobrecarga descrito

Para más información sobre esto:
¿Podemos sobrecargar o anular los métodos estáticos en Java? – GeeksforGeeks

En mi opinión, la sobrecarga y la anulación no son conceptos similares para ser comparados entre sí (aparte de alguna similitud en el nombre). Cuando un entrevistador le pregunta cuáles son las diferencias, básicamente le hace 2 preguntas juntas, que son:

  1. ¿Qué sabes sobre la sobrecarga? Respondido aquí: Java – Métodos
  2. ¿Qué sabes sobre la anulación? Respondido aquí: Java – Anulación

La pregunta a menudo se hace de esta manera para comprender cuán claro es que Interviwee comprende ambos temas, ¿puede confundirse fácilmente?

Una imagen vale más que mil palabras:

Fuente: ¿Diferencia entre la sobrecarga de métodos y la anulación en Java?

Consulte estos enlaces para sobrecargar y anular reglas en java
Tutorial de sobrecarga
Tutorial sobresaliente

La sobrecarga es la característica de Java para tener una definición de método diferente con un nombre de método común. La definición del método está vinculada a la llamada al método en tiempo de compilación en función del número y tipo de argumentos.

La anulación es la característica de Java para anular el comportamiento genérico del método de la clase Base utilizando el mismo nombre y firma del método en la clase derivada. La definición del método está vinculada a la llamada al Método durante el tiempo de ejecución en función del objeto de retención.

En palabras simples

Sobrecarga: esto es reutilizar el mismo nombre de método con diferentes argumentos y diferentes tipos de retorno.

Anulación: uso del mismo método con argumentos idénticos y tipos de retorno.

Mi opinión personal sobre la mejor respuesta a esta pregunta es:

La sobrecarga es un polimorfismo de tiempo de compilación, mientras que la anulación es un polimorfismo de tiempo de ejecución.

More Interesting

¿Cuál es el proceso de entrevista en Vanilla Networks Pvt. Limitado.?

Tengo previsto encontrarme con un veterano del ejército británico para una entrevista de trabajo. ¿Cómo crees que puedo impresionarlo? Soy africana

Cómo obtener una llamada de entrevista de Google

¿Cómo respondo la pregunta, "¿Por qué quieres unirte a un banco después de hacer una licenciatura con matemáticas?" en una entrevista SBI PO?

¿De qué cosas debe ocuparse un estudiante más fresco mientras va a una entrevista y también cuando se sienta frente al entrevistador?

¿Importa una pasantía de verano cuando se da una entrevista en las UPM?

¿Qué preguntas típicas me hacen en una entrevista de reclutamiento con McKinsey?

¿Debería actuar de manera diferente en una entrevista de pasantía que en una entrevista para un trabajo regular?

Me despidieron de mi compañía anterior. He estado sin trabajo durante 6 meses. Donde quiera que vaya para una entrevista me rechazan debido a mi brecha en el empleo. Estoy perdiendo esperanzas. ¿Qué tengo que hacer?

¿Serán suficientes las matemáticas avanzadas de ingeniería de Erwin Kreyszig para temas como probabilidad y estadística, ecuaciones diferenciales, regresión y técnicas numéricas en pruebas de ubicación en campus como Goldman Sachs?

¿Se le permite al CEO de una empresa unirse a una entrevista?

Cómo saber cuándo estoy preparado para una entrevista en Google

¿Los candidatos exitosos responden todo en una entrevista?

¿Cuándo te diste cuenta de que has arruinado la entrevista?

¿Qué es una entrevista informativa?