Если не вдаваться в академические определения, а говорить с точки зрения практики, то вот самый простой пример, который ты можешь во многих языках уже реализованным встретить.
Представь, что у тебя есть огромное множество различных классов- реализаций коллекций объектов. Списки, Массивы, Словари, классы для обращения к БД и так далее и тому подобное. Все эти классы не имеют какого-то общего предка, кроме object.
Стоит задача - сделать так, чтобы работа с этими коллекциями с точки зрения прикладного программиста выглядела одинаково. То есть, чтобы у любой коллекции был стандартные методы, чтобы узнать её длину, получить элемент, перейти к следующему элементу. Так как общего предка нет, нельзя реализовать все эти методы в абстрактном классе и от него наследовать.
Решение: мы создаём интерфейс IEnumerable с указанными выше методами и реализуем его в каждой коллекции. Всё. Теперь программист может любой массив привести к типу IEnumerable и работать с ним, вообще не задумываясь, как он на самом деле устроен внутри.
Таким образом интерфейсы заменяют множественное наследование, когда классам из совершенно разных мест в иерархии надо иметь сходные методы работы и (что важно) чтобы другие знали о том, что эти методы у них есть
Другие языки программирования и технологии
Объясните значение понятия "интерфейсы" в ООП? Что это такое, отличия от классов, зачем нужны, и где используются.
http://ru.wikipedia.org/wiki/Интерфейс_(объектно-ориентированное_программирование)
Николай Душенко
http://ru.wikipedia .org/wiki/Интерфейс_(объектно-ориентированное_программирование)
интерфейс - то что видишь на экране в уже готовой программе, с помощью интерфейса происходит твое общение с компом, класс - грубо говоря часть программы которая скрыта от пользователя в готовой программе. С использованием классов как раз и создается видимая часть интерфейса. Класс - кусок исходного текста программы. Интерфейс - результат работы класса.
Fake Style*
Ну да, интерфейс - "междумордие". Результат работы класса.. . Я понял только, что он, интерфейс
может иметь задекларированные методы для имплементящих его классов, которые обязаны его реализовать,
и что таких классов может быть несколько, которые имплементят интерфейсы (или несколько интерфейсов).
может иметь задекларированные методы для имплементящих его классов, которые обязаны его реализовать,
и что таких классов может быть несколько, которые имплементят интерфейсы (или несколько интерфейсов).
Похожие вопросы
- Объясните доступным языком, что такое "интерфейс" в ООП
- Зачем нужны интерфейсы в ООП. C#
- "Кроссбраузерный Дизайн" - объясните это понятие
- помогите объяснить значение каждой строчки программы на ассемблере!?
- Объясните пожалуйста понятия массив , в определение сказано
- Что такое компиляция? На простом человеческом языке объясните значение этого слова?
- ООП. Как правильно организовать связь классов?
- Правильно ли я понимаю значении ООП
- Зачем нужно в с++ ООП? Ну классы, объекты? Если в си их не было, но язык исаользуется по сей день.
- Что такое "член класса" (ООП), зачем нужны и какие бывают виды