В Dart нет явного ключевого слова interface. Интерфейсы неявно объявляются путем определения класса. Любой класс в Dart может служить интерфейсом.
Класс, реализующий интерфейс, должен объявить ключевое слово implements за именем класса и перечислить имена интерфейсов, которые он реализует.
dart
Если класс реализует несколько интерфейсов, их можно перечислить через запятую:
dart
Использование abstract класса также позволяет определить интерфейс, но с возможностью содержать неабстрактные методы и переменные экземпляра. Однако для чистого определения контракта чаще используется обычный класс или даже abstract класс со всеми абстрактными методами.