Parametri nei metodi delle interfacce in OOP in PHP

Quando si descrivono i metodi nelle interfacce, è necessario specificare non solo i nomi dei metodi stessi, ma anche i parametri che accettano.

Diamo un'occhiata a un esempio. Supponiamo di avere l'interfaccia iMath, che descrive una classe per operazioni matematiche di addizione, sottrazione, moltiplicazione e divisione. Lasciamo che questa interfaccia sia così:

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

Attualmente i metodi della nostra interfaccia non accettano alcun parametro. E in realtà i metodi della classe che implementerà questa interfaccia, anch'essi non dovranno accettare parametri, altrimenti si verificherà un errore.

Specifichiamo ora i parametri dei metodi nella nostra interfaccia:

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

Scriviamo ora l'implementazione della nostra interfaccia:

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

Se si tenta di impostare un numero diverso di parametri nella nostra classe - semplicemente non ci riusciremo: PHP genererà un errore. In questo modo non potremo né dimenticare accidentalmente un parametro, né aggiungere accidentalmente uno extra.

Задание 1

Supponiamo di avere questa interfaccia iUser:

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

Crea una classe User che implementi questa interfaccia.