⊗ppOpIfCD 70 of 107 menu

Deklaracja konstruktora w interfejsie w OOP w PHP

W interfejsie również można zadeklarować konstruktor klasy. Spójrzmy na przykład. Załóżmy, że postanowiliśmy utworzyć klasę Rectangle, w której będą metody do znajdowania pola powierzchni, obwodu, a także konstruktor przyjmujący dwa parametry. Opiszmy naszą klasę za pomocą interfejsu:

<?php interface iRectangle { public function __construct($a, $b); // konstruktor z dwoma parametrami public function getSquare(); public function getPerimeter(); } ?>

Napiszmy implementację naszego interfejsu 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); } } ?>

Co dało nam zadeklarowanie konstruktora w interfejsie? Po pierwsze, nie zapomnimy zaimplementować konstruktora w klasie. Po drugie, interfejs wyraźnie wskazuje, że konstruktor klasy musi przyjmować dwa parametry: ani więcej, ani mniej. To również zabezpieczy nas przed przypadkowym błędem.

Dlaczego utworzyliśmy osobny interfejs iRectangle, a nie dodaliśmy konstruktora do interfejsu Figure? Ponieważ wszystkie figury mają różną liczbę boków i, odpowiednio, różną liczbę parametrów w konstruktorze. Dlatego musieliśmy utworzyć osobny, bardziej precyzyjny interfejs konkretnie dla prostokątów.

Utwórz interfejs iCube, który będzie opisywał figurę Sześcian. Niech twój interfejs opisuje konstruktor, przyjmujący parametrem bok sześcianu, a także metody do uzyskiwania objętości sześcianu i pola powierzchni.

Utwórz klasę Cube, implementującą interfejs iCube.

Utwórz interfejs iUser, który będzie opisywał użytkownika. Zakłada się, że użytkownik będzie miał imię i wiek, a te pola będą przekazywane parametrami konstruktora. Niech twój interfejs również określa, że użytkownik będzie miał gettery (ale nie settery) dla imienia i wieku.

Utwórz klasę User, implementującą interfejs iUser.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć