Автор Dmitryj задал вопрос в разделе Другие языки и технологии
Зачем нужны интерфейсы в ООП. C# и получил лучший ответ
Ответ от Пётр Добрынин[гуру]
ты конечно можешь описать нужный тебе метод в каждом классе наследнике. Но вот представь себе ситуацию, у тебя массив экземпляров твоих классов, естественно их все прийдётся привести к object и как ты на массиве object'ов вызовешь свой метод? только рефлексией. А имея массив с элементами типа IInterface ты сможешь на них вызвать любой метод объявленный в этом интерфейсе, этого эффекта конечно можно было добиться используя абстрактный класс или унаследовать их все от одного конкретного класса, но т. к в c# нет множественного наследования, МС не захотела так ограничивать разработчиков и ввела интерфейсы.
странно что вопрос задан здесь, а не в техсаппорте майкрософта!
Интерфейсы как раз нужны чтобы разработчик не забыл реализовать метод в классе. Интерфейс является своего рода требованием к реализации, он требует от класса к которому был применен обязательной реализации описанных методов.
Предположим такую ситуацию: "Я вот тут пишу прогу, поможешь? У меня метод должен сортировать масивы. Ему передаётся класс-сортировщик и массив. Я написал пока только сортировку пузырьком. Напиши мне сортировку вставками. " - Второй программист никогда не видел программу первого. Если он напишет такой класс-сортировщик, то первый программист не сможет его использовать, т. к. его метод принимает совершенно другой тип. Тогда придётся писать другой метод, для этого типа. Но в реальности таких типов может быть сотни и тысячи. Эту проблему как раз и решают интерфейсы.
Пример очень простой, но наглядный. На самом деле их применение куда шире и они очень полезны. Например для написания плагинов сторонними разработчиками, для расширяемости приложения и т. д.