Paraméterek az interfész metódusaiban az OOP-ban PHP-ben
Az interfészek metódusainak leírásakor nemcsak maguknak a metódusoknak a nevét kell megadni, hanem az általuk elfogadott paramétereket is.
Nézzük ezt egy példán keresztül. Legyen egy iMath interfészünk, amely egy osztályt ír le
a matematikai összeadás, kivonás, szorzás és osztás műveleteihez. Legyen ez az interfész
így:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
Jelenleg az interfész metódusai nem fogadnak semmilyen paramétert. És valójában azon osztály metódusainak, amely megvalósítja ezt az interfészt, szintén nem szabad paramétereket fogadniuk, különben hiba történik.
Adjunk meg paramétereket az interfészünk metódusainak:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Írjuk meg most az interfészünk megvalósítását:
<?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;
}
}
?>
Ha megpróbálnánk az osztályunkban más mennyiségű paramétert megadni - ez egyszerűen nem sikerülne: PHP hibát jelezne. Így nem tudunk sem véletlenül elfelejteni valamilyen paramétert, sem véletlenül feleslegest hozzáadni.
Legyen egy ilyen iUser interfészünk:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Készítsen egy User osztályt, amely
megvalósítja ezt az interfészt.