⊗ppOpIfCD 70 of 107 menu

Declaração do construtor na interface em POO em PHP

Na interface também é possível declarar o construtor da classe. Vejamos um exemplo. Suponha que decidimos criar a classe Rectangle, na qual haverá métodos para encontrar a área, o perímetro, bem como um construtor que recebe dois parâmetros. Vamos descrever nossa classe usando uma interface:

<?php interface iRectangle { public function __construct($a, $b); // construtor com dois parâmetros public function getSquare(); public function getPerimeter(); } ?>

Vamos escrever a implementação da nossa 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); } } ?>

O que a declaração do construtor na interface nos deu? Em primeiro lugar, não nos esqueceremos de implementar o construtor na classe. Em segundo lugar, a interface indica explicitamente que o construtor da classe deve receber dois parâmetros: nem mais, nem menos. Isso também nos protege de um erro acidental.

Por que criamos uma interface separada iRectangle, em vez de adicionar o construtor à interface Figure? Porque todas as figuras têm um número diferente de lados e, consequentemente, um número diferente de parâmetros no construtor. Portanto, tivemos que criar uma interface separada, mais específica, especificamente para retângulos.

Faça a interface iCube, que descreverá a figura Cubo. Deixe sua interface descrever o construtor, recebendo como parâmetro o lado do cubo, bem como métodos para obter o volume do cubo e a área da superfície.

Faça a classe Cube, implementando a interface iCube.

Faça a interface iUser, que descreverá o usuário. Presume-se que o usuário terá nome e idade e esses campos serão passados como parâmetros do construtor. Deixe sua interface também definir que o usuário terá getters (mas não setters) para o nome e idade.

Faça a classe User, implementando a interface iUser.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar