Interfacce e classi astratte definiscono contratti per le classi.
Interfaccia
interface Printable {
public function print();
public function getContent();
}
class Document implements Printable {
public function print() {
echo $this->getContent();
}
public function getContent() {
return "Contenuto documento";
}
}Classe astratta
abstract class Shape {
protected $color;
public function setColor($color) {
$this->color = $color;
}
abstract public function area(); // Da implementare
}
class Rectangle extends Shape {
public function area() {
return $this->width * $this->height;
}
}