Параметри во методите на интерфејсите во ООП во PHP

При опишување на методите во интерфејсите потребно е да се наведат не само имињата на самите методи, туку и параметрите што ги прифаќаат.

Да погледнеме на пример. Нека ни е даден интерфејсот iMath, што опишува класа за математички операции собирање, одземање, множење и делење. Нека овој интерфејс изгледа вака:

iMath.php<?php
  interface iMath
  {
    public function sum();
    public function subtract();
    public function multiply();
    public function divide();
  }
?>

Во моментов методите на нашиот интерфејс не прифаќаат никакви параметри. И всушност методите на класата, што ќе го имплементира овој интерфејс, исто така нема да прифаќаат параметри, инаку ќе има грешка.

Ајде да ги наведеме параметрите на методите во нашиот интерфејс:

iMath.php<?php
  interface iMath
  {
    public function sum($a, $b);
    public function subtract($a, $b);
    public function multiply($a, $b);
    public function divide($a, $b);
  }
?>

Ајде сега да напишеме имплементација на нашиот интерфејс:

Math.php<?php
  class Math implements iMath
  {
    public function sum($a, $b)
    {
      return $a + $b;
    }
    
    public function subtract($a, $b)
    {
      return $a - $b;
    }
    
    public function multiply($a, $b)
    {
      return $a * $b;
    }
    
    public function divide($a, $b)
    {
      return $a / $b;
    }
  }
?>

Ако се обидете во нашата класа да зададете различен број на параметри - кај нас тоа едноставно нема да успее: PHP ќе ја прикаже грешката. На овој начин ние нема да можеме ниту случајно да заборавиме некој параметар, ниту пак случајно да додадеме непотребен.

Задание 1

Нека ни е даден ваков интерфејс iUser:

php<?php
  interface iUser
  {
    public function setName($name);
    public function getName();
    public function setAge($age);
    public function getAge();
  }
?>

Направете класа User, што ќе го имплементира дадениот интерфејс.