Параметри у метода интерфејса у ООП у 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 која ће имплементирати овај интерфејс.