Mazoezi ya Kutumia Interfaces katika OOP kwa PHP

Wacha tujaribu matumizi ya interfaces kwa mazoezi. Wacha tutatue tatizo la maumbo kutoka somo lililopita, lakini kwa kutumia interfaces, na sio abstract classes.

Kwa hivyo, sasa tuna interface Figure:

Figure.php<?php
  interface Figure
  {
    public function getSquare();
    public function getPerimeter();
  }
?>

Wacha tuandike class Quadrate, ambayo itakuwa inatekeleza methods za interface hii:

Quadrate.php<?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;
    }
  }
?>

Jinsi inavyofanya kazi: ikiwa utasahau kutekeleza method yoyote, iliyoelezewa kwenye interface, PHP itatupa makosa makuu (fatal error). Wacha tutekeleze pia class Rectangle:

Rectangle.php<?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);
    }
  }
?>
Задание 1

Fanya class Disk, iyatekeleze interface Figure.