Maison > Java > javaDidacticiel > le corps du texte

Quelle est la différence entre le polymorphisme dynamique et statique en Java ?

Mary-Kate Olsen
Libérer: 2024-10-30 11:15:20
original
749 Les gens l'ont consulté

What is the difference between dynamic and static polymorphism in Java?

Comprendre le polymorphisme dynamique et statique en Java

Le polymorphisme en Java permet aux objets de différentes classes de se comporter de manière similaire, malgré leurs différences. Cette flexibilité est obtenue grâce à deux types de polymorphisme : dynamique et statique.

Polymorphisme dynamique
Également connu sous le nom de polymorphisme d'exécution, le polymorphisme dynamique se produit lorsqu'un remplacement de méthode dans les sous-classes a lieu. L'appel à la méthode de substitution est résolu au moment de l'exécution en fonction du type d'objet réel.

Considérons l'exemple suivant :

<code class="java">class Animal {
    public void move() {
        System.out.println("Animals can move");
    }
}

class Dog extends Animal {
    @Override
    public void move() {
        System.out.println("Dogs can walk and run");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal(); // Animal reference and object
        Animal dog = new Dog(); // Animal reference but Dog object

        animal.move(); // Output: Animals can move
        dog.move(); // Output: Dogs can walk and run
    }
}</code>
Copier après la connexion

Dans cet exemple, la méthode move() est remplacée dans le Cours de chien. Lorsque la référence animale appelle la méthode move(), le type réel de l'objet (Animal ou Chien) détermine le comportement au moment de l'exécution. Il s'agit d'un polymorphisme dynamique.

Polymorphisme statique (surcharge de méthode)
Le polymorphisme statique, également appelé polymorphisme au moment de la compilation, se produit lorsque plusieurs méthodes portant le même nom mais différentes listes de paramètres existent dans la même classe. L'appel à la bonne méthode est déterminé au moment de la compilation en fonction du nombre et des types d'arguments passés.

Considérons l'exemple suivant :

<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 calculation = new Calculation();
        calculation.sum(10, 10, 10); // Output: 30
        calculation.sum(20, 20); // Output: 40
    }
}</code>
Copier après la connexion

Dans cet exemple, sum() La méthode est surchargée avec différentes listes de paramètres. L'appel à la bonne méthode sum() est déterminé au moment de la compilation en fonction du nombre d'arguments passés. Il s'agit d'un polymorphisme statique ou d'une surcharge de méthode.

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!