Параметры в методах интерфейсов в ООП на PHP
При описании методов в интерфейсах необходимо указывать не только имена самих методов, но и принимаемые ими параметры.
Давайте посмотрим на примере. Пусть у нас
дан интерфейс iMath
, описывающий класс
для математических операций сложения, вычитания,
умножения и деления. Пусть этот интерфейс
будет выглядеть так:
<?php
interface iMath
{
public function sum(); // сложить
public function subtract(); // вычесть
public function multiply(); // умножить
public function divide(); // поделить
}
?>
Сейчас методы нашего интерфейса не принимают никаких параметров. И на самом деле методы класса, который будет реализовывать этот интерфейс, также не должны будут принимать параметров, иначе будет ошибка.
Давайте укажем параметры методов в нашем интерфейсе:
<?php
interface iMath
{
public function sum($a, $b); // сложить
public function subtract($a, $b); // вычесть
public function multiply($a, $b); // умножить
public function divide($a, $b); // поделить
}
?>
Напишем теперь реализацию нашего интерфейса:
<?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 выдаст ошибку. Таким образом мы не сможем ни случайно забыть какой-то параметр, ни случайно добавить лишний.
Пусть у нас дан такой интерфейс iUser
:
<?php
interface iUser
{
public function setName($name); // установить имя
public function getName(); // получить имя
public function setAge($age); // установить возраст
public function getAge(); // получить возраст
}
?>
Сделайте класс User
, который будет
реализовывать данный интерфейс.