⊗ppOpIfCD 70 of 107 menu

Déclaration du constructeur dans l'interface en POO en PHP

Dans une interface, il est également possible de déclarer le constructeur d'une classe. Regardons un exemple. Supposons que nous ayons décidé de créer une classe Rectangle, qui contiendra des méthodes pour trouver l'aire, le périmètre, ainsi qu'un constructeur acceptant deux paramètres. Décrivons notre classe à l'aide d'une interface :

<?php interface iRectangle { public function __construct($a, $b); // constructeur avec deux paramètres public function getSquare(); public function getPerimeter(); } ?>

Écrivons l'implémentation de notre interface iRectangle :

<?php class Rectangle implements iRectangle { private $a; private $b; public function __construct($a, $b) { $this->a = $a; $this->b = $b; } public function getSquare() { return $this->a * $this->b; } public function getPerimeter() { return 2 * ($this->a + $this->b); } } ?>

Qu'est-ce que la déclaration du constructeur dans l'interface nous a apporté ? Premièrement, nous n'oublierons pas d'implémenter le constructeur dans la classe. Deuxièmement, l'interface indique explicitement que le constructeur de la classe doit accepter deux paramètres : ni plus, ni moins. Cela nous protège également d'une erreur accidentelle.

Pourquoi avons-nous créé une interface séparée iRectangle, au lieu d'ajouter le constructeur à l'interface Figure ? Parce que toutes les figures ont un nombre différent de côtés et, par conséquent, un nombre différent de paramètres dans le constructeur. C'est pourquoi nous avons dû créer une interface distincte, plus précise, spécifiquement pour les rectangles.

Créez une interface iCube, qui décrira la figure du Cube. Que votre interface déscrive un constructeur, prenant en paramètre le côté du cube, ainsi que des méthodes pour obtenir le volume du cube et l'aire de sa surface.

Créez une classe Cube, implémentant l'interface iCube.

Créez une interface iUser, qui décrira un utilisateur. On suppose que l'utilisateur aura un nom et un âge et que ces champs seront transmis en paramètres du constructeur. Que votre interface spécifie également que l'utilisateur aura des getters (mais pas des setters) pour le nom et l'âge.

Créez une classe User, implémentant l'interface iUser.

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