¿Cuál es la diferencia entre la sobrecarga de métodos y la anulación?



Este artículo cubre las diferencias clave entre la sobrecarga de métodos y la anulación en java con varios ejemplos que incluyen super palabra clave y varias reglas.

El lenguaje de programación Java es la mejor opción cuando se trata de . Con conceptos como clases , , , etc., resulta extremadamente fácil trabajar con . La facilidad de acceso y la sintaxis sencilla hacen que el código sea eficiente y menos complejo. En este artículo, aprenderemos sobre la sobrecarga y anulación de métodos en Java. Los siguientes son los temas que se tratan en este blog:

¿Qué es la sobrecarga de métodos en Java?

La sobrecarga de métodos permite que el método tenga el mismo nombre, que difiere según los argumentos o los tipos de argumentos. Puede estar relacionado con el polimorfismo en tiempo de compilación. A continuación se presentan algunos consejos que debemos tener en cuenta al sobrecargar métodos en Java.





  • No podemos sobrecargar un tipo de retorno.

  • Aunque podamos sobrecargar , los argumentos o parámetros de entrada deben ser diferentes.



  • No podemos sobrecargar dos métodos si solo se diferencian por una palabra clave estática.

  • Como otros métodos estáticos, el método main () también se puede sobrecargar.

sobrecarga de métodos - sobrecarga de métodos y anulación en java- edureka



Echemos un vistazo a un programa simple para comprender cómo funciona la sobrecarga de métodos en Python.

public class Div {public int div (int a, int b) {return (a / b)} public int div (int a, int b, int c) {return ((a + b) / c)} public static void main (String args []) {Div ob = new Div () ob.div (10, 2) ob.div (10, 2, 3)}}
 Salida: 5 4

En el programa anterior, tenemos dos métodos con el mismo nombre pero diferentes parámetros. Así es como funciona la sobrecarga de métodos en .

¿Por qué la sobrecarga de métodos?

La principal ventaja de utilizar la sobrecarga de métodos en Java es que nos da la libertad de no definir una función una y otra vez para hacer lo mismo. En el siguiente ejemplo, los dos métodos básicamente realizan división, por lo que podemos tener diferentes métodos con el mismo nombre pero con diferentes parámetros. También ayuda en el polimorfismo en tiempo de compilación.

Sobrecargar el método main ():

A continuación se muestra un ejemplo para sobrecargar el método main () en java.

public class Edureka {public static void main (String [] args) {System.out.println ('hola') Edureka.main ('edurekan')} public static void main (String arg1) {System.out.println (' bienvenido '+ arg1) Edureka.main (' bienvenido ',' a edureka ')} public static void main (String arg1, String arg2) {System.out.println (' hola ', + arg1, + arg2)}}
 Salida: hola bienvenido edurekan hola bienvenido a edureka

Ejemplos de sobrecarga de métodos

  • Programa para sobrecargar métodos estáticos en java.
public class Test {public static int func (int a) {return 100} public static char func (int a, int b) {return 'edureka'} public static void main (String args []) {System.out.println ( func (1)) System.out.println (func (1,3))}}
 Salida: 100 edureka
  • Programa para sobrecargar tres métodos con el mismo nombre.
public class Add {public int add (int a, int b) {return (a + b)} public int add (int a, int b, int c) {return (a + b + c)} public double add (double a, doble b) {return (a + b)} public static void main (String args []) {Add ob = new Add () ob.add (15,25) ob.add (15,25,35) ob .add (11.5, 22.5)}}
 Salida: 40 75 34

¿Qué es la anulación de métodos en Java?

La herencia en Java implica una relación entre clases padre e hijo. Siempre que ambas clases contengan métodos con el mismo nombre y argumentos o parámetros, es seguro que uno de los métodos anulará al otro durante la ejecución. El método que se ejecutará depende del objeto.

copia superficial de Java vs copia profunda

Si el objeto de la clase secundaria llama al método, el método de la clase secundaria anulará el método de la clase principal. De lo contrario, si el objeto de la clase principal llama al método, se ejecutará el método de la clase principal.

La anulación de métodos también ayuda a implementar el polimorfismo en tiempo de ejecución en java. Tomemos un ejemplo simple para comprender cómo funciona la anulación de métodos en Java.

class Parent {void view () {System.out.println ('este es un método de clase principal)}} class Child amplía Parent {void view () {System.out.println (' este es un método de clase secundaria)}} public static void main (String args []) {Parent ob = new Parent () ob.view () Parent ob1 = new Child () ob1.view ()
 Salida: este es un método de clase secundaria

Reglas para anular métodos

  • los acceso editar solo puede permitir más acceso para el método anulado.

  • A final El método no admite la sustitución del método.

  • Un método estático no se puede anular.

  • Los métodos privados no se pueden anular.

  • El tipo de retorno del método de reemplazo debe ser el mismo.

  • Podemos llamar al método de la clase padre en el método de reemplazo usando la palabra clave super.

  • A constructor no se puede anular porque una clase secundaria y una clase principal no pueden tener el constructor con el mismo nombre.

Ejemplo de anulación de método

  • Programa para mostrar anulación usando super palabra clave
class Parent {void show () {System.out.println ('método de clase principal')} class Child amplía Parent {void show () {super.show () System.out.println ('método de clase secundaria')} public static void main (String args []) {Parent ob = new Child () ob.show ()}}
 Salida: método de clase padre método de clase hijo

Sobrecarga frente a anulación: diferencia entre sobrecarga de método y anulación de método

A continuación se muestran las diferencias clave entre la sobrecarga de métodos y la anulación en Java.

Sobrecarga de métodos Anulación de método
  • Se utiliza para aumentar la legibilidad del programa.
  • Proporciona una implementación específica del método que ya está en la clase principal.
  • Se realiza dentro de la misma clase.
  • Involucra múltiples clases
  • Los parámetros deben ser diferentes en caso de sobrecarga
  • Los parámetros deben ser los mismos en caso de anulación
  • Es un ejemplo de polimorfismo en tiempo de compilación
  • Es un ejemplo de polimorfismo en tiempo de ejecución.
  • El tipo de retorno puede ser diferente, pero también debe cambiar los parámetros.
  • El tipo de retorno debe ser el mismo al anular
  • Los métodos estáticos pueden sobrecargarse
  • La anulación no implica métodos estáticos.

En este blog, hemos discutido en detalle la sobrecarga de métodos y la anulación de métodos. Con la participación de clases, objetos y conceptos como herencia y polimorfismo, se vuelve bastante importante tener una idea clara de lo que significa sobrecargar o anular métodos en Java.

El lenguaje de programación Java es un pináculo en la programación orientada a objetos e incorpora muchas aplicaciones. Con la demanda y la popularidad, un aspirante a desarrollador de Java debe dominar los conceptos fundamentales del lenguaje de programación. Inscríbete en Edureka's para poner en marcha su aprendizaje.

Tienes una pregunta para nosotros? mencione esto en la sección de comentarios de este artículo sobre “sobrecarga de métodos frente a anulación de métodos en Java” y nos comunicaremos con usted lo antes posible.