Sobes.tech
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);