diferencia entre sobrecargar y anular | Sobrecarga vs Anulación

Publicado: 2021-06-15

Tabla de contenido

Introducción

La Programación Orientada a Objetos juega un papel importante en los sectores de desarrollo de software. Varios conceptos están asociados con este tipo de programación como clase, objeto, polimorfismo, herencia, abstracción de datos, programación genérica y manejo excepcional.

Los desarrolladores siempre encuentran bastante interesante el concepto de polimorfismo, que tiene subconceptos como sobrecarga de métodos, anulación de métodos, etc. Sin embargo, para comprender mejor el concepto de polimorfismo, se debe entender la diferencia entre sobrecarga y anulación .

Diferencia entre sobrecarga de métodos y anulación de métodos

Existen muchas diferencias entre la sobrecarga de métodos y la anulación de métodos . La lista de diferencias entre la sobrecarga y la anulación de métodos en Java se tabula a continuación:

Sobrecarga de métodos Anulación de métodos
1 El método se utiliza para aumentar la legibilidad del programa. El método se utiliza para proporcionar la implementación del método proporcionado por la superclase.
2 Se realiza dentro de una clase. Ocurre en dos clases que tienen una relación IS-A (herencia). Se requieren la base y una clase secundaria para anular.
3 Los métodos o funciones deben tener el mismo nombre y firmas diferentes. Los métodos o funciones deben tener el mismo nombre y las mismas firmas.
4 Los parámetros utilizados en este método deben ser diferentes. Se deben utilizar los mismos parámetros en el caso de anulación de métodos.
5 Es un ejemplo de polimorfismo en tiempo de compilación. El enlace de la llamada al método de sobrecarga a su definición ocurre en el momento de la compilación. Es un ejemplo de polimorfismo en tiempo de ejecución. El enlace de la llamada al método anulado a su definición ocurre en el tiempo de ejecución.
6 Solo cambiando el tipo de devolución, no se puede realizar la sobrecarga del método. El tipo de retorno puede ser diferente o el mismo. Pero, los parámetros deben ser diferentes. El tipo de valor devuelto en la anulación del método puede ser el mismo o covariante.
7 La sobrecarga de métodos se puede aplicar a métodos estáticos. Esto significa que una clase puede tener más de un método estático con el mismo nombre. La anulación de métodos no se puede aplicar a métodos estáticos.
8 El enlace estático se utiliza para la sobrecarga de métodos. El enlace dinámico se utiliza para anular métodos.
9 La sobrecarga de métodos proporciona un mejor rendimiento. Menor rendimiento en comparación con la sobrecarga de métodos. El motivo es que el enlace de los métodos anulados se realiza en tiempo de ejecución.
10 Los métodos privados y finales pueden estar sobrecargados. Una clase puede tener más de un método privado/final con el mismo nombre. Los métodos privados y finales no se pueden anular. Una clase secundaria no puede anular los métodos privados/finales de su clase base.
11 La herencia puede o no ser necesaria en caso de sobrecarga del método. La herencia siempre es necesaria en el caso de anulación de métodos.
12 Se utiliza para añadir más al comportamiento de los métodos. Se utiliza para cambiar el comportamiento de los métodos existentes.
13 No es necesaria la presencia de más de una clase en la sobrecarga de métodos. Siempre existe la necesidad de al menos dos clases en la anulación de métodos.
14 Si se interrumpe la sobrecarga, aparecerá el error en tiempo de compilación y es fácil de solucionar. Si la anulación se rompe, puede causar problemas graves en nuestro programa porque el efecto será visible en tiempo de ejecución.
15 La sobrecarga del método debe tener una firma diferente. El método que anula debe tener la misma firma.
dieciséis Los modificadores de acceso en el método de sobrecarga pueden ser cualquier cosa o diferentes. El modificador de acceso del método de la subclase debe ser igual o mayor que el modificador de acceso del método de la superclase en el método de reemplazo.
17 Las excepciones lanzadas pueden ser cualquier cosa en el concepto de sobrecarga de métodos. En la anulación de métodos, las excepciones no verificadas lanzadas pueden ser cualquier cosa. Para las excepciones comprobadas, el método de anulación no debe generar ninguna excepción que sea nueva o más amplia que las declaradas por el método anulado.
18 El compilador siempre se ocupa de la resolución del método en función del tipo de referencia. La JVM se encarga de la resolución del método en función del objeto de tiempo de ejecución.

Aprenda cursos de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

¿Qué sigue?

Si está interesado en obtener más información sobre el desarrollo de software de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos y asignaciones, estado de ex alumnos de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.

¿Qué es el polimorfismo en tiempo de ejecución?

El polimorfismo en tiempo de ejecución es un tipo de polimorfismo que implica la tipificación dinámica. Esto significa que los objetos se pueden manipular como si fueran de un solo tipo. Esto es similar al polimorfismo estático donde los objetos se manipulan como si tuvieran un solo tipo, independientemente de su tipo subyacente. Es uno de los cinco principales principios de diseño de software. Se utiliza con la programación orientada a objetos. Significa que una variable puede referirse a diferentes objetos dependiendo de las condiciones de tiempo de ejecución. Por ejemplo, se puede usar una variable para hacer referencia a un objeto Perro cuando se declara la variable, pero durante la ejecución del programa, la variable puede hacer referencia a un objeto Gato. Es una conversión de tipo automática. Por ejemplo, si tiene una variable entera i y le asigna un valor de cadena, se convertirá en una variable de cadena.

¿En qué se diferencia la anulación de la sobrecarga?

¿Podemos anular el método sobrecargado?

Un método sobrecargado es lo mismo que uno regular (en términos de número y tipo de parámetros), pero con la diferencia de que el método sobrecargado está escrito de tal manera que puede aceptar parámetros de un tipo diferente al normal. Puede anular un método sobrecargado de la misma manera que anula uno normal.