⊗ppOpIfCD 70 of 107 menu

Declaración del constructor en la interfaz en POO en PHP

En la interfaz también se puede declarar el constructor de la clase. Veamos un ejemplo. Supongamos que decidimos crear una clase Rectangle, en la cual habrá métodos para encontrar el área, el perímetro, así como un constructor que acepte dos parámetros. Describamos nuestra clase mediante una interfaz:

<?php interface iRectangle { public function __construct($a, $b); // constructor con dos parámetros public function getSquare(); public function getPerimeter(); } ?>

Escribamos la implementación de nuestra interfaz 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é nos dio declarar el constructor en la interfaz? En primer lugar, no olvidaremos implementar el constructor en la clase. En segundo lugar, la interfaz indica explícitamente que el constructor de la clase debe aceptar dos parámetros: ni más, ni menos. Esto también nos protege de errores accidentales.

¿Por qué creamos una interfaz separada iRectangle, y no añadimos el constructor a la interfaz Figure? Porque todas las figuras tienen diferente cantidad de lados y, respectivamente, diferente cantidad de parámetros en el constructor. Por lo tanto, tuvimos que crear una interfaz separada, más precisa, específicamente para rectángulos.

Cree una interfaz iCube, que describa la figura Cubo. Que su interfaz describa un constructor, que acepte como parámetro el lado del cubo, así como métodos para obtener el volumen del cubo y el área de la superficie.

Cree una clase Cube, que implemente la interfaz iCube.

Cree una interfaz iUser, que describa al usuario. Se supone que el usuario tendrá un nombre y una edad y que estos campos se pasarán como parámetros del constructor. Que su interfaz también establezca que el usuario tendrá getters (pero no setters) para el nombre y la edad.

Cree una clase User, que implemente la interfaz iUser.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar