Maison  >  Article  >  Java  >  En quoi le remplacement de méthode et la surcharge de méthode diffèrent-ils en Java ?

En quoi le remplacement de méthode et la surcharge de méthode diffèrent-ils en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 20:08:30341parcourir

How do Method Overriding and Method Overloading Differ in Java?

Distinguer le polymorphisme dynamique et statique en Java

Comprendre la différence entre le polymorphisme dynamique et statique est crucial dans la programmation orientée objet avec Java. Cet article fournira une explication simplifiée et un exemple pour élucider ce concept.

Polymorphisme dynamique ou statique

Le polymorphisme permet à un seul nom de méthode d'avoir plusieurs implémentations en fonction du type d'objet qui l'appelle. Il existe deux principaux types de polymorphisme :

  • Polymorphisme dynamique (liaison d'exécution) : Les appels de méthode sont résolus au moment de l'exécution en fonction de la classe réelle de l'objet. Cela se produit avec le remplacement de méthode dans les sous-classes et est également connu sous le nom de liaison tardive.
  • Polymorphisme statique (liaison au moment de la compilation) : Les appels de méthode sont résolus au moment de la compilation en fonction du type déclaré de la variable de référence. Cela se produit avec une surcharge de méthode dans la même classe et est également connu sous le nom de liaison précoce.

Surcharge de méthode

La surcharge de méthode est une forme de polymorphisme statique où plusieurs les méthodes portant le même nom existent dans la même classe mais diffèrent par leurs paramètres. Lors de l'appel d'une méthode surchargée, Java détermine la méthode appropriée à invoquer en fonction du nombre et des types d'arguments transmis.

Exemple de code (surcharge de méthode) :

<code class="java">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
  }
}</code>

Le remplacement de méthode

Le remplacement de méthode est une forme de polymorphisme dynamique où les méthodes portant le même nom et la même signature sont déclarées dans des classes différentes mais partagent une classe parent commune. Lors de l'appel d'une méthode remplacée, Java détermine la méthode à invoquer en fonction de la classe réelle de l'objet au moment de l'exécution.

Exemple de code (remplacement de méthode) :

<code class="java">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
  }
}</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn