39. Classes et Méthodes Abstraites
Les classes abstraites sont des modèles partiels. Elles ne peuvent pas être instanciées directement, mais elles peuvent être héritées par d'autres classes. Elles imposent une structure que toutes les classes enfants doivent suivre.
Classes Abstraites
- Définies à l'aide du mot-clé
abstract. - Ne peuvent pas être créées avec
new AbstractClass(). - Doivent contenir au moins une méthode abstraite, mais peuvent également contenir des méthodes et propriétés régulières.
Méthodes Abstraites
- Méthodes déclarées avec le mot-clé
abstract. - Elles n'ont pas de corps (pas de
{}), seulement une signature. - Toute classe enfant concrète (non abstraite) qui étend une classe abstraite doit implémenter toutes les méthodes abstraites définies par le parent.
php
name = $name; } // Méthode abstraite : force les enfants à définir ce comportement abstract public function makeSound(); // Méthode régulière public function sleep() { echo "$this->name dort."; } } // Classe Concrète : DOIT implémenter makeSound() class Dog extends Animal { public function makeSound() { return "$this->name dit Woof!"; } } // Classe Concrète : DOIT implémenter makeSound() class Cat extends Animal { public function makeSound() { return "$this->name dit Meow!"; } } $dog = new Dog("Sparky"); echo $dog->makeSound(); // Résultat : Sparky says Woof! ?>Objectif : Définir une interface commune et garantir que les classes associées partagent certaines fonctionnalités obligatoires.