⊗ppOpFnCl 63 of 107 menu

Classes abstraites en POO en PHP

Supposons que vous ayez une classe User, et que les classes Employee et Student en héritent.

Dans ce cas, il est prévu que vous créerez des objets des classes Employee et Student, mais pas d'objets de la classe User, car cette classe est utilisée uniquement pour grouper les propriétés et méthodes communes de ses descendants.

Dans ce cas, vous pouvez interdire de force la création d'objets de la classe User, afin que vous ou un autre programmeur ne les créiez pas accidentellement quelque part.

Pour cela, il existe ce qu'on appelle les classes abstraites. Les classes abstraites sont des classes destinées à être héritées. En revanche, il est impossible de créer des objets de telles classes.

Pour déclarer une classe comme abstraite, vous devez écrire le mot-clé abstract lors de sa déclaration :

<?php abstract class User { } ?>

Alors, écrivons l'implémentation de la classe abstraite User. Supposons qu'elle ait une propriété privée name, ainsi que des getters et setters pour celle-ci :

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } } ?>

Toute tentative de créer un objet de la classe User provoquera une erreur :

<?php $user = new User; // provoquera une erreur ?>

En revanche, il sera possible d'hériter de notre classe. Créons une classe Employee qui héritera de notre classe abstraite User :

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } } ?>

Créeons un objet de la classe Employee - tout fonctionnera :

<?php $employee = new Employee; $employee->setName('john'); // méthode du parent, c'est-à-dire de la classe User $employee->setSalary(1000); // sa propre méthode, c'est-à-dire de la classe Employee echo $employee->getName(); // affichera 'john' echo $employee->getSalary(); // affichera 1000 ?>

Créez une classe abstraite Figure, représentant une figure géométrique. Que les classes pour le cercle, le rectangle et le carré en héritent.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser