Сегодня мы поговорим об интерфейсах в языке программирования Dart. И, возможно, как вы уже поняли, речь пойдет не о пользовательских интерфейсах, а об синтаксической структуре в объектно-ориентированном программирование.
Что же это такое? Интерфейс – это описание действий, которые объект может выполнять. Например, скажем, у нас есть класс автомобилей, класс скутеров и класс грузовиков. Каждый из этих трех классов должен иметь действие start_engine(). То, как запускается двигатель может отличаться от класса к классу, но факт в том, что класс должен иметь действие start_engine(). И это как раз область применения интерфейса.
Синтаксис объявления интерфейса в Dart
Как вы видите, интерфейс выглядит как любой другой обычный класс в Dart. Использование интерфейса происходит при помощи ключевого слова implements. В отличии от наследования, исполнять можно множество интерфейсов. Просто перечисляя через запятую, например:
А теперь я покажу их применение на примере с автомобилями, скутерам и грузовиками.
Итак, выше мы объявили интерфейс InterfaceEngine. В нем мы создали метод start_engine(), который, по сути, ничего не делает. Он всего лишь интерфейс. Затем объявили классы, которые уже исполняют InterfaceEngine. В них то и переопределяется start_engine(), который уже что-то умеет делать, при том он может от класса к классу отличаться. Automobile() печатает "Automobile engine started", а Scooter() уже "Scooter engine started" и тд.
Также использование интерфейсов реализует один из принципов ООП – полиморфизм. Полиморфизм позволяет семейству объектов придерживаться одного интерфейса, позволяя при этом различные реализации. Вспоминаете start_engine()? Метод один, а реализуется по-разному.
Выводы:
- Dart не имеет специального синтаксиса для объявления интерфейсов.
- В Dart любой класс может выступать в качестве интерфейса. Классы могут использовать ключевое слово implements для использования любого класса в качестве интерфейса.
- Когда какой-либо класс реализует интерфейс, он должен переопределить каждый метод и переменную экземпляра интерфейса.
- При помощи интерфейсов можно реализовать принцип ООП - полиморфизм.
А на этом всё. Спасибо за внимание!
Вам может быть интересно: