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 ...