Práctica sobre la aplicación de interfaces en POO en PHP

Probemos la aplicación de interfaces en la práctica. Resolvamos la tarea de las figuras de la lección anterior, pero ahora usando interfaces, no clases abstractas.

Entonces, ahora tenemos la interfaz Figure:

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

Escribamos la clase Quadrate, que implementará los métodos de esta interfaz:

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

Cómo funciona: si olvidamos implementar algún método descrito en la interfaz, PHP nos mostrará un error fatal. Implementemos también la clase 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

Cree la clase Disk, que implemente la interfaz Figure.