Praktik Penerapan Interface dalam OOP di PHP

Mari kita coba penerapan interface dalam praktik. Kita akan menyelesaikan masalah tentang bentuk dari pelajaran sebelumnya, tetapi sekarang menggunakan interface, bukan kelas abstrak.

Jadi, sekarang kita diberikan interface Figure:

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

Mari kita tulis kelas Quadrate yang akan mengimplementasikan metode dari interface ini:

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

Berikut cara kerjanya: jika kita lupa mengimplementasikan suatu metode yang dijelaskan dalam interface, PHP akan memberikan kita error fatal. Mari implementasikan juga kelas 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

Buatlah kelas Disk, yang mengimplementasikan interface Figure.