Parametrai interfeisų metoduose OOP PHP
Aprašant metodus interfeisuose, būtina nurodyti ne tik pačių metodų pavadinimus, bet ir priimamus parametrus.
Pažiūrėkime pavyzdžiu. Tarkime, kad turime
interfeisą iMath, aprašantį klasę
matematinėms sudėties, atimties,
daugybos ir dalybos operacijoms. Tegul šis interfeisas
atrodo taip:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
Dabar mūsų interfeiso metodai nepriima jokių parametrų. Ir iš tikrųjų klasės metodai, kurie bus įgyvendins šį interfeisą, taip pat neturės priimti parametrų, kitaip bus klaida.
Dabar nurodykime metodų parametrus mūsų interfeise:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Dabar parašykime mūsų interfeiso įgyvendinimą:
<?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;
}
}
?>
Jei bandytume mūsų klasėje nustatyti kitokį parametrų skaičių - mums tiesiog nepavyks: PHP išduos klaidą. Taigi mes negalėsime nei netyčia pamiršti kokio parametro, nei netyčia pridėti perteklinio.
Tarkime, kad turime tokį interfeisą iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Sukurkite klasę User, kuri
įgyvendins šį interfeisą.