Πρακτική εφαρμογή διεπαφών στην ΑΝΠ στη PHP

Ας δοκιμάσουμε την πρακτική εφαρμογή των διεπαφών. Ας λύσουμε το πρόβλημα με τα σχήματα από το προηγούμενο μάθημα, αλλά τώρα χρησιμοποιώντας διεπαφές, και όχι αφηρημένες κλάσεις.

Λοιπόν, τώρα μας δίνεται η διεπαφή Figure:

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

Ας γράψουμε την κλάση Quadrate, η οποία θα υλοποιεί τις μεθόδους αυτής της διεπαφής:

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;
    }
  }
?>

Πώς λειτουργεί αυτό: αν ξεχάσουμε να υλοποιήσουμε οποιαδήποτε μέθοδο, που περιγράφεται στη διεπαφή, η PHP θα μας εμφανίσει ένα μοιραίο σφάλμα. Ας υλοποιήσουμε επίσης την κλάση 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

Δημιουργήστε την κλάση Disk, που υλοποιεί τη διεπαφή Figure.