"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿En qué se diferencian la anulación de métodos y la sobrecarga de métodos en Java?

¿En qué se diferencian la anulación de métodos y la sobrecarga de métodos en Java?

Publicado el 2024-11-21
Navegar:132

How do Method Overriding and Method Overloading Differ in Java?

Distinguir polimorfismo dinámico y estático en Java

Comprender la diferencia entre polimorfismo dinámico y estático es crucial en la programación orientada a objetos con Java. Este artículo proporcionará una explicación simplificada y un ejemplo para dilucidar este concepto.

Polimorfismo dinámico versus estático

El polimorfismo permite que un solo nombre de método tenga múltiples implementaciones dependiendo de tipo de objeto que lo llama. Hay dos tipos principales de polimorfismo:

  • Polimorfismo dinámico (enlace en tiempo de ejecución): Las llamadas a métodos se resuelven en tiempo de ejecución según la clase del objeto real. Ocurre con la anulación de métodos en subclases y también se conoce como enlace tardío.
  • Polimorfismo estático (enlace en tiempo de compilación): Las llamadas a métodos se resuelven en tiempo de compilación según el tipo declarado de la variable de referencia. Ocurre con la sobrecarga de métodos en la misma clase y también se conoce como enlace anticipado.

Sobrecarga de métodos

La sobrecarga de métodos es una forma de polimorfismo estático en el que múltiples Los métodos con el mismo nombre existen en la misma clase pero difieren en sus parámetros. Al llamar a un método sobrecargado, Java determina el método apropiado a invocar según el número y los tipos de argumentos pasados.

Ejemplo de código (sobrecarga de método):

class Calculation {
  void sum(int a, int b) { System.out.println(a   b); }
  void sum(int a, int b, int c) { System.out.println(a   b   c); }

  public static void main(String[] args) {
    Calculation obj = new Calculation();
    obj.sum(10, 10, 10); // Output: 30
    obj.sum(20, 20); // Output: 40
  }
}

Anulación de métodos

La anulación de métodos es una forma de polimorfismo dinámico donde los métodos con el mismo nombre y firma se declaran en diferentes clases pero comparten una clase principal común. Al llamar a un método anulado, Java determina el método a invocar en función de la clase real del objeto en tiempo de ejecución.

Ejemplo de código (anulación de método):

class Animal {
  public void move() {
    System.out.println("Animals can move");
  }
}

class Dog extends Animal {

  public void move() {
    System.out.println("Dogs can walk and run");
  }
}

public class TestDog {

  public static void main(String[] args) {
    Animal a = new Animal(); // Animal reference and object
    Animal b = new Dog(); // Animal reference but Dog object

    a.move(); // Output: Animals can move

    b.move(); // Output: Dogs can walk and run
  }
}
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3