ABSTRACT |
Abstrait |
---|---|
PHP 5.0+ |
Syntaxe
abstract class nomclasse { definitions } |
Paramètres
Nom | Description |
---|---|
nomclasse | Ce paramètre permet d'indiquer le nom de la classe abstraite. |
definitions | Ce paramètre permet d'indiquer des définitions contenu dans la classe. |
Description
Ce mot réservé permet d'identifier des classes et des méthodes de types abstraites.
Remarques
- Définition d'une classe abstraite : Le mot-clef abstract est utilisé pour définir une classe abstraite, ne pouvant pas être instanciée directement. Elle sert de base à d'autres classes et permet de définir des comportements communs à ces dernières. Cela force les classes dérivées à implémenter certaines méthodes définies comme abstraites.
- Obligation d'implémentation des méthodes abstraites : Une méthode marquée comme abstract dans une classe abstraite ne contient pas de corps (pas de bloc {}) et oblige les classes héritant d'elle à fournir une implémentation concrète. Cela garantit que les classes dérivées respectent une interface minimale définie par la classe abstraite.
- Utilisation combinée avec l'héritage : Les classes abstraites sont principalement utilisées en combinaison avec l'héritage. Une classe abstraite peut définir des méthodes concrètes (avec du code) et abstraites (sans code). Cela permet de mélanger du comportement commun réutilisable et des spécificités laissées aux classes filles.
- Ne peut pas être instanciée : Une classe abstraite ne peut jamais être instanciée directement.
- Différence avec une interface : Contrairement à une interface, une classe abstraite peut contenir des propriétés, des méthodes concrètes, et même des constructeurs. Les interfaces, en revanche, ne contiennent que des déclarations de méthodes et ne définissent aucune logique ni propriété.
- Support des modificateurs d'accès : Les méthodes abstraites peuvent utiliser des modificateurs d'accès comme public, protected ou private. Cela permet de contrôler la visibilité et l'accès des méthodes que les classes dérivées devront implémenter. Par exemple, une méthode abstraite protégée (protected) ne sera accessible que dans la classe fille ou les classes héritées.
- Gestion de la cohérence des architectures logicielles : L'utilisation des classes abstraites contribue à une meilleure conception du code en favorisant la programmation orientée objet (POO). Elles sont idéales pour mettre en ouvre le principe d'inversion de dépendance et encouragent la cohérence structurelle dans les grandes applications.
- Possibilité d'utiliser des traits dans les classes abstraites : En PHP, une classe abstraite peut également utiliser des traits pour importer des méthodes ou des fonctionnalités partagées. Cela permet de combiner les avantages des traits avec la flexibilité des classes abstraites pour structurer du code réutilisable.
Dernière mise à jour : Vendredi, le 5 janvier 2018