Adicional a lo que dice @enriqueplace, la idea es que tu puedas comprobar que una clase hereda, o implementa una interfaz para que puedas trabajar con ella y así garantizar una "firma de comportamiento".
Supon que tienes tu clase Persona, y una interfaz que se llame Asalariado, la idea es que los que implementen Asalariado tengan un método getSalario() para poder contar. Ahora supongamos tienes una clase Contabilidad, esta clase por diseño solo acepta personas Asalariadas, pero como distingues si lo que le pasas es una Persona, o una persona Asalariada? Pues puedes usar typehinting:
Código PHP:
Ver originalpublic function agregaPersona(Asalariada $Persona);
O comprobar dentro de tu función:
Código PHP:
Ver originalif (!($Persona instanceof Asalariada)) {
throw new Exception('Solo se permite agregar personas Asalariadas');
}
Espero con esto despejarte más tus dudas.
Saludos.