Параметры ў метадах інтэрфейсаў у ААП у 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, які будзе рэалізоўваць дадзены інтэрфейс.