⊗ppOpIfCD 70 of 107 menu

Declararea constructorului în interfață în OOP în PHP

În interfață se poate declara și constructorul clasei. Să vedem un exemplu. Să presupunem că am decis să creăm clasa Rectangle, care va conține metode pentru găsirea ariei, perimetrului, precum și un constructor care primește doi parametri. Să descriem clasa noastră cu ajutorul unei interfețe:

<?php interface iRectangle { public function __construct($a, $b); // constructor cu doi parametri public function getSquare(); public function getPerimeter(); } ?>

Să scriem implementarea interfeței noastre 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); } } ?>

Ce ne-a oferit declararea constructorului în interfață? În primul rând, nu vom uita să implementăm constructorul în clasă. În al doilea rând, interfața indică în mod explicit că constructorul clasei trebuie să primească doi parametri: nici mai mult, nici mai puțin. Acest lucru ne protejează și de erori accidentale.

De ce am creat o interfață separată iRectangle, și nu am adăugat constructorul în interfața Figure? Pentru că toate figurile au un număr diferit de laturi și, în consecință, un număr diferit de parametri în constructor. De aceea a trebuit să creăm o interfață separată, mai precisă special pentru dreptunghiuri.

Creați o interfață iCube, care să descrie figura Cub. Lăsați interfața voastră să descrie un constructor care primește ca parametru latura cubului, precum și metode pentru obținerea volumului cubului și a suprafeței.

Creați o clasă Cube, care implementează interfața iCube.

Creați o interfață iUser, care să descrie un utilizator. Se presupune că utilizatorul are un nume și o vârstă și aceste câmpuri vor fi transmise ca parametri ai constructorului. Lăsați interfața voastră să specifice, de asemenea, că utilizatorul va avea gettere (dar nu settere) pentru nume și vârstă.

Creați o clasă User, care implementează interfața iUser.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge