Maison > Java > javaDidacticiel > le corps du texte

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

Linda Hamilton
Libérer: 2024-10-27 20:08:30
original
351 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!