<?php
// Clase base o interfaz
interface Animal {
public function hacerSonido();
}
// Clases que implementan la interfaz con su propia versión del método
class Perro implements Animal {
public function hacerSonido() {
echo "Guau Guau\n";
}
}
class Gato implements Animal {
public function hacerSonido() {
echo "Miau Miau\n";
}
}
// Función que usa polimorfismo para llamar el método hacerSonido de cualquier Animal
function hacerRuido(Animal $animal) {
$animal->hacerSonido();
}
$miPerro = new Perro();
$miGato = new Gato();
hacerRuido($miPerro); // Imprime: Guau Guau
hacerRuido($miGato); // Imprime: Miau Miau
?>