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