Practică pe aplicarea interfețelor în OOP în PHP
Să încercăm aplicarea interfețelor în practică. Să rezolvăm problema cu figurile geometrice din lecția precedentă, dar folosind acum interfețe, nu clase abstracte.
Deci, acum avem interfața Figure:
<?php
interface Figure
{
public function getSquare();
public function getPerimeter();
}
?>
Să creăm clasa Quadrate care
va implementa metodele acestei interfețe:
<?php
class Quadrate implements Figure
{
private $a;
public function __construct($a)
{
$this->a = $a;
}
public function getSquare()
{
return $this->a * $this->a;
}
public function getPerimeter()
{
return 4 * $this->a;
}
}
?>
Cum funcționează: dacă uităm să implementăm
vreo metodă descrisă în interfață,
PHP ne va afișa o eroare fatală. Să
implementăm și clasa Rectangle:
<?php
class Rectangle implements Figure
{
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);
}
}
?>
Creați clasa Disk,
care implementează interfața Figure.