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.
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(); }
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(); }
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()); }
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(); }
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"); } }
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(); } } }
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!