Есть ли смысл переопределять интерфейс, который уже унаследован? - PullRequest
2 голосов
/ 02 апреля 2012

Я фанат C #, но, думаю, это вообще вопрос ООП:

В приведенном ниже коде есть ли смысл повторно указывать, что class B реализует interface I?

interface I { }
class A : I { }
class B : A, I { }

Насколько я могу судить, ответ отрицательный, за исключением, возможно, читабельности, если в классе реализовано много интерфейсов, и вы хотели бы выделить определенный при объявлении класса.

Ответы [ 3 ]

3 голосов
/ 02 апреля 2012

Нет, нет. На самом деле, это может немного сбить с толку, когда вы продолжаете повторно объявлять интерфейсы, особенно когда цепочка наследования становится большой. Если вы хотите подчеркнуть, что класс реализует важный интерфейс, возможно, одним из способов является добавление информации в поле сводки в комментарии для класса для отображения всплывающей подсказки.

0 голосов
/ 02 апреля 2012

Нет, и на самом деле такие инструменты, как ReSharper, покажут вам, что вторая реализация I избыточна.

0 голосов
/ 02 апреля 2012

Нет, нет никакого другого смысла, кроме, возможно, для обобщенных ограничений, т. Е. (Возможно, неправильный синтаксис, но вы поймете, что - я думаю, (из памяти) ограничения имеют некоторые особенности в отношении наследования и применения ограничения)

public T MethodName(T gen) where T : I
{

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...