Parametri u metodama interfejsa u OOP u PHP
Prilikom opisa metoda u interfejsima, potrebno je naznačiti ne samo imena samih metoda, već i parametre koje oni prihvataju.
Pogledajmo na primeru. Neka imamo
interfejs iMath, koji opisuje klasu
za matematičke operacije sabiranja, oduzimanja,
množenja i deljenja. Neka ovaj interfejs
izgleda ovako:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
Trenutno metode našeg interfejsa ne prihvataju nijedan parametar. I zapravo, metode klase koja će implementirati ovaj interfejs, takođe neće smeti da prihvataju parametre, inače će biti greške.
Hajde da navedemo parametre metoda u našem interfejsu:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Napišimo sada implementaciju našeg interfejsa:
<?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;
}
}
?>
Ako pokušamo u našoj klasi da postavimo drugačiji broj parametara - jednostavno nam to neće uspeti: PHP će prijaviti grešku. Na taj način nećemo moći ni da slučajno zaboravimo neki parametar, niti da slučajno dodamo suvišan.
Neka nam je dat ovakav interfejs iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Napravite klasu User, koja će
implementirati ovaj interfejs.