Нет смысла реализовывать два интерфейса, содержащие методы с одинаковыми сигнатурами.
Компилятор не может знать, действительно ли методы имеют одну и ту же цель - если нет, это будет означать, что хотя бы один из интерфейсов не может быть реализован вашим классом.
Пример:
interface IProgram { function execute($what); /* executes the given program */ }
interface ISQLQuery { function execute($what); /* executes the given sql query */ }
class PureAwesomeness implements IProgram, ISQLQuery {
public function execute($what) { /* execute something.. but what?! */ }
}
Итак, как вы видите, невозможно реализовать метод для обоих интерфейсов - и это такженевозможно вызвать метод, который фактически реализует метод из данного интерфейса.