<?php interface animal{ public function sound(); } class duck implements animal{ public function sound(){ echo "duck sound"; } } class dog implements animal{ public function sound(){ echo "dog sound"; } } class foo{ function makeSound(animal $obj){ $obj->sound(); } } $bar = new foo(); $bar->makeSound(new dog()); $bar->makeSound(new duck()); ?>