Я предполагаю, что вы хотите знать, почему он объявляет, что он реализует ICollection
, а также IEnumerable
, когда первое подразумевает второе. Я подозреваю, что главная причина - ясность: это означает, что людям не нужно оглядываться на ICollection
, чтобы проверить, что оно уже распространяется IEnumerable
.
В других случаях вам необходимо переопределить реализацию интерфейса, если вы хотите повторно реализовать метод интерфейса, который ранее был явно реализован в базовом классе, - но я не думаю, что причина в этом случае.
РЕДАКТИРОВАТЬ: я предполагал, что исходный код, из которого построены документы, имеет объявление, включающее оба интерфейса. Другая возможная альтернатива состоит в том, что все интерфейсы в иерархии автоматически включаются генератором документов. В этом случае возникает вопрос «почему генератор документов так делает» - и ответ почти наверняка остается «ясным».