Práctica sobre la aplicación de interfaces en POO en PHP
Probemos la aplicación de interfaces en la práctica. Resolvamos la tarea de las figuras de la lección anterior, pero ahora usando interfaces, no clases abstractas.
Entonces, ahora tenemos la interfaz Figure:
<?php
interface Figure
{
public function getSquare();
public function getPerimeter();
}
?>
Escribamos la clase Quadrate, que
implementará los métodos de esta interfaz:
<?php
class Quadrate implements Figure
{
private $a;
public function __construct($a)
{
$this->a = $a;
}
public function getSquare()
{
return $this->a * $this->a;
}
public function getPerimeter()
{
return 4 * $this->a;
}
}
?>
Cómo funciona: si olvidamos implementar
algún método descrito en la interfaz,
PHP nos mostrará un error fatal. Implementemos
también la clase Rectangle:
<?php
class Rectangle implements Figure
{
private $a;
private $b;
public function __construct($a, $b)
{
$this->a = $a;
$this->b = $b;
}
public function getSquare()
{
return $this->a * $this->b;
}
public function getPerimeter()
{
return 2 * ($this->a + $this->b);
}
}
?>
Cree la clase Disk,
que implemente la interfaz Figure.