Leçon 24 : Pillier 4 de l'OOP : Abstraction à l'aide de Classes Abstraites
L'Abstraction consiste à ne montrer que les informations essentielles à l'utilisateur et à masquer les détails d'implémentation complexes. Elle se concentre sur ce que fait un objet plutôt que sur comment il le fait.
1. Classes Abstraites
- Une classe abstraite est déclarée à l'aide du mot-clé
abstract. - Elle peut contenir à la fois des méthodes implémentées (concrètes) et des méthodes non implémentées (abstraites).
- Crucialement : Vous ne pouvez pas créer d'objets (instances) d'une classe abstraite.
2. Méthodes Abstraites
- Une méthode abstraite est une méthode déclarée sans implémentation (pas de corps, se termine par un point-virgule).
- Toute classe contenant une ou plusieurs méthodes abstraites doit être déclarée abstraite.
- Les sous-classes doivent fournir des implémentations pour toutes les méthodes abstraites héritées, sinon elles doivent également être déclarées abstraites.
Exemple
java public abstract class Shape { // Classe abstraite String color;
// Méthode concrète (implémentée)
public void printColor() {
System.out.println("Couleur : " + color);
}
// Méthode abstraite (sans corps) - force les sous-classes à l'implémenter
public abstract double calculateArea();
}
// La sous-classe doit implémenter la méthode abstraite public class Circle extends Shape { private double radius = 5.0;
@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
}
// Utilisation : // Shape s = new Shape(); // ERREUR ! Impossible d'instancier une classe abstraite Shape c = new Circle(); // OK (Polymorphisme) double area = c.calculateArea();
Les classes abstraites sont parfaites pour partager du code commun tout en imposant des implémentations spécifiques pour les comportements critiques à travers des sous-classes liées.