⊗ppOpIhOPM 28 of 107 menu

Surcharge des méthodes parentes en POO en PHP

Une classe enfant peut surcharger une méthode du parent en créant une méthode du même nom. Regardons un exemple. Supposons que nous ayons la classe parente suivante :

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

Créons une méthode du même nom dans la classe enfant :

<?php class Student extends User { public function setName($name) { } } ?>

Généralement, la surcharge des méthodes parentes est nécessaire pour modifier ou compléter le comportement de cette méthode. Dans notre cas, ajoutons une vérification de la longueur du nom :

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Assurons-nous que c'est bien la méthode surchargée qui est appelée. Commençons par créer un objet de la classe enfant :

<?php $student = new Student; ?>

Maintenant, appelons notre méthode, en lui passant une valeur correcte :

<?php $student->setName('john'); ?>

Et maintenant, appelons la méthode en passant une valeur incorrecte. En conséquence, nous verrons le message d'erreur :

<?php $student->setName(''); // erreur ?>

Dans la classe User, créez un getter et un setter pour l'âge.

Dans la classe Employee, surchargez le setter de l'âge et ajoutez-y une vérification que l'âge est compris entre 18 et 65 ans.

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