Parámetros en métodos de interfaces en POO en PHP
Al describir métodos en interfaces, es necesario indicar no solo los nombres de los métodos mismos, sino también los parámetros que aceptan.
Veamos un ejemplo. Supongamos que tenemos
una interfaz iMath que describe una clase
para operaciones matemáticas de suma, resta,
multiplicación y división. Supongamos que esta interfaz
se ve así:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
Actualmente, los métodos de nuestra interfaz no aceptan ningún parámetro. Y, de hecho, los métodos de la clase que implementará esta interfaz, tampoco deberán aceptar parámetros, de lo contrario, habrá un error.
Especificamos los parámetros de los métodos en nuestra interfaz:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Escribamos ahora la implementación de nuestra interfaz:
<?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;
}
}
?>
Si intentamos establecer una cantidad diferente de parámetros en nuestra clase, simplemente no lo lograremos: PHP generará un error. Así no podremos ni olvidar accidentalmente algún parámetro, ni agregar accidentalmente uno extra.
Supongamos que tenemos una interfaz iUser como esta:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Cree una clase User que
implemente esta interfaz.