Junior
Quelle est la différence entre abstraction et polymorphisme?
sobes.tech IA
Réponse de l'IA
L'abstraction se concentre sur la dissimulation des détails d'implémentation et la fourniture d'une représentation simplifiée de l'objet. Le polymorphisme permet de traiter des objets de différentes classes comme des objets d'une classe de base ou d'une interface, en effectuant des actions spécifiques à chaque objet.
| Caractéristique | Abstraction | Polymorphisme |
|---|---|---|
| Essence | Cacher les détails, fournir une vue d'ensemble | La capacité de traiter des objets de différents types de manière uniforme |
| Objectif | Simplification, réduction de la complexité | Flexibilité, extensibilité, universalité du code |
| Comment cela est-il réalisé | Classes abstraites, interfaces | Surcharge de méthodes, redéfinition de méthodes, interfaces |
| Exemple | Classe Automobile sans détails du moteur |
Méthode aller() dans différentes classes (Voiture, Camion) |
Exemple d'abstraction (utilisation de l'abstraction):
interface Forme {
// Méthode abstraite
double calculerSurface();
}
class Cercle implements Forme {
private double rayon;
public Cercle(double rayon) {
this.rayon = rayon;
}
@Override
public double calculerSurface() {
// Les détails de l'implémentation sont cachés derrière la méthode de l'interface
return Math.PI * rayon * rayon;
}
}
Exemple de polymorphisme:
// Utilisation du polymorphisme
Forme maForme = new Cercle(5);
// Appel de la méthode calculerSurface() via la référence du type de base (interface Forme)
// La méthode calculerSurface() de la classe Cercle sera en réalité exécutée
double surface = maForme.calculerSurface();
System.out.println("Surface: " + surface);