Diferencia clave : sobrecargar significa tener dos métodos de la misma clase con el mismo nombre y con diferentes tipos de parámetros, mientras que sobrescribir significa tener dos métodos diferentes en la misma clase con los mismos tipos de parámetros, pero con diferentes implementaciones.
Los métodos de anulación y sobrecarga son dos conceptos o técnicas que se utilizan en los lenguajes de programación Java. Ambos conceptos permiten al programador proporcionar diferentes implementaciones para métodos con el mismo nombre. Este artículo diferencia entre los dos conceptos de programación.
La sobrecarga de funciones o la sobrecarga de métodos permite crear varios métodos con el mismo nombre, en la misma clase pero diferentes entre sí en la entrada y el tipo de salida de la función. Simplemente se define como la capacidad de una función para realizar diferentes tareas.
En la sobrecarga, las implementaciones del método comparten el mismo nombre porque realizan tareas similares. Además, la sobrecarga se considera de naturaleza polimórfica. Las funciones que tienen diferentes implementaciones dependen de los tipos de argumentos especificados. Por lo general, se asocia con lenguajes de programación estáticos que imponen la verificación de tipos en las llamadas a funciones. También se considera práctico, ya que le permite al programador escribir varios métodos diferentes en la misma clase. Sin embargo, al sobrecargar el procesador de tiempo de ejecución cambia el nombre de todos los métodos sobrecargados, lo que puede ser un problema.
La anulación de métodos, en la programación orientada a objetos, es una característica que permite a una subclase o clase secundaria proporcionar una implementación específica de un método que ya proporciona una de sus superclases o clases primarias. La implementación en la subclase invalida o reemplaza la implementación en la clase principal al proporcionar un método con el mismo nombre, los mismos parámetros o firma, y el mismo tipo de retorno que el método en la clase principal.
En la invalidación de métodos, las funciones se codifican para llevar a cabo tareas específicas en un programa. La anulación depende de la presencia de una función de clase base para su apariencia. Aquí, la función ejecutada está determinada por el objeto que se usa para invocarla, es decir, si un objeto de una clase primaria se usa para invocar el método, entonces se ejecutará la función en la clase primaria. La anulación es de naturaleza polimórfica; Ayuda a diseñar programas basados en el primer parámetro implícito, que puede resolverse en tiempo de ejecución. Hay algunos lenguajes en Java que permiten a un programador evitar que un método se invalide.
Comparación entre sobrecarga y anulación:
Sobrecarga | Primordial | |
Definición | Significa tener métodos de la misma clase con el mismo nombre, pero cada método tiene diferentes parámetros o tiene los mismos parámetros con diferentes tipos y orden. | Significa tener una subclase con los mismos métodos con el mismo nombre y exactamente el mismo tipo de parámetros y el mismo tipo de retorno que una súper clase. |
Sentido | Esto significa que más de un método comparte el mismo nombre en la misma clase pero tiene una firma diferente. | Significa que el método de la clase base se redefine en la clase derivada con la misma firma. |
Comportamiento | Añade o amplía el comportamiento de los métodos. | Cambia el comportamiento existente de un método. |
Polimorfismo | Es un polimorfismo de tiempo de compilación. | Es un polimorfismo de tiempo de ejecución. |
Método estático | El método estático se puede sobrecargar. | El método estático no puede ser anulado. |
Enlace | Enlace estático. | Enlace dinámico. |
Herencia | Puede o no puede requerir herencia. | Siempre requiere herencia. |
Asociación | Generalmente se asocia con lenguajes de programa estáticos. | Por lo general se asocia con programas orientados a objetos. |
Firma | Los métodos tienen una firma diferente. | Los métodos deben tener la misma firma. |
Velocidad | Es más rápido que anular. | Es lento en comparación con la sobrecarga. |
Las clases | No requiere más de una clase para la sobrecarga. | Requiere al menos dos clases para la sobrecarga. |
Nivel | Los métodos pueden tener cualquier nivel de acceso. | Los métodos tienen nivel de acceso igual o amplio. |
Ejemplo | Clase Agregar { int sum (int a, int b) { devuelve a + b; } int suma (int a) { devuelve un + 10; } } | Clase A // Super Class { visualización nula (número int.) { número de impresión } } // La clase B hereda la clase A Clase B // Subclase { visualización nula (número int.) { número de impresión } } |