Preview:
<?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
?>
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter