Maison > Java > javaDidacticiel > Application de polymorphisme d'interfaces et de classes abstraites en Java

Application de polymorphisme d'interfaces et de classes abstraites en Java

PHPz
Libérer: 2024-05-02 10:33:01
original
1213 Les gens l'ont consulté

En Java, le polymorphisme est réalisé grâce à des interfaces et des classes abstraites. Une interface définit les méthodes qui doivent être implémentées par la classe qui l'implémente ; une classe abstraite contient des méthodes abstraites qui doivent être implémentées par ses sous-classes. Le polymorphisme est obtenu en créant un tableau d'objets et en appelant la même méthode, permettant d'appeler différentes implémentations en fonction du type réel de l'élément. Par exemple, vous pouvez définir une interface Shape pour définir les méthodes de dessin de la classe Shape, puis créer plusieurs classes de forme (telles que Cercle, Carré, Triangle) avec différentes implémentations et utiliser le polymorphisme pour dessiner toutes les formes via une classe canevas.

Java 中接口和抽象类的多态性应用

Application du polymorphisme dans les interfaces et les classes abstraites en Java

Le polymorphisme est un concept clé de la programmation orientée objet (POO) qui permet aux objets de répondre au même appel de méthode de différentes manières. En Java, le polymorphisme peut être réalisé via des interfaces et des classes abstraites.

Interface

Une interface définit un ensemble de méthodes qui doivent être implémentées par la classe qui l'implémente. L'interface elle-même ne contient aucune implémentation, elle précise simplement le contrat.

public interface Shape {
    double getArea();
}
Copier après la connexion

Classe abstraite

Une classe abstraite est une classe qui possède au moins une méthode abstraite. Les méthodes abstraites ne sont pas implémentées et doivent être implémentées par leurs sous-classes. Les classes abstraites peuvent contenir des méthodes et des champs concrets.

public abstract class Animal {
    protected String name;
    
    public abstract void makeSound();
}
Copier après la connexion

Polymorphisme

À l'aide d'interfaces et de classes abstraites, il est possible de créer des tableaux d'objets où chaque élément a un type différent. Lorsque la même méthode sur ces éléments est appelée, une implémentation différente est appelée en fonction du type de l'élément réel.

Shape[] shapes = { new Circle(), new Square(), new Triangle() };
for (Shape shape : shapes) {
    System.out.println("Area: " + shape.getArea());
}
Copier après la connexion

Cas pratique

Envisagez un cours de toile qui permet de dessiner différentes formes. Les formes peuvent être définies à l'aide de l'interface suivante :

public interface Shape {
    void draw();
}
Copier après la connexion

Ensuite, plusieurs classes de formes avec différentes implémentations de dessin peuvent être créées :

public class Circle implements Shape {
    @Override
    public void draw() { System.out.println("Drawing a circle"); }
}

public class Square implements Shape {
    @Override
    public void draw() { System.out.println("Drawing a square"); }
}

public class Triangle implements Shape {
    @Override
    public void draw() { System.out.println("Drawing a triangle"); }
}
Copier après la connexion

La classe canvas peut accepter un tableau d'objets Shape, en utilisant le polymorphisme pour dessiner toutes les formes :

public class Canvas {
    public void drawAll(Shape[] shapes) {
        for (Shape shape : shapes) {
            shape.draw();
        }
    }
}
Copier après la connexion

Grâce à l'interface et aux classes abstraites, le polymorphisme en Java permet d'appeler dynamiquement des méthodes en fonction du type réel de l'objet, permettant ainsi un code évolutif et réutilisable.

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal