Sommaire

Les Classes abstraitesclasses abstraites et les Interfacesinterfaces

Nous n’irons pas plus loin sur l’étude du langage objet (bien qu’il y ait encore beaucoup à dire), mais une dernière notion est importante, d’autant plus qu’elle est utilisée dans Symfony : c’est la notion de classe abstraite et d’interface.

1. Les classes abstraites

Tout découle de l’héritage de classe, l’idée étant d’avoir des classes mères qui ne servent qu’à l’héritage.

Une classe abstraite est une classe qu’on ne peut pas instancier.

On la définit avec le mot-clé abstractabstract.

Une classe abstraite peut contenir des méthodes abstraites. Les méthodes abstraites sont des méthodes qu’il est obligatoire de redéfinir dans la (ou les) classes filles.

Ces méthodes ne contiennent que des signatures, elles n’ont pas de contenu.

Syntaxe d’une classe abstraite :

abstract class Maclasse 
{ 
 
    // peut contenir des propriétés et des méthodes  
 
    abstract public function maFonction(parametres); 
 
}

Une méthode ne peut être abstraite que si la classe est abstraite.

Dans notre exemple, la classe Produit peut dériver d’une classe abstraite qu’on appellera ProduitAbstract qui regroupera la structure générale de la classe Produit.

Créons ...