`implements` используется в Dart для реализации интерфейса класса. В отличие от `extends`, `implements` требует вручную реализовать все поля и методы интерфейса, без возможности наследования их поведения.
Класс `Dog` реализует интерфейс `Animal`, но не наследует реализацию метода `speak()`. Её нужно определить самостоятельно.
Особенности `implements`
реализация интерфейса (class)
Класс обязан реализовать все методы и геттеры/сеттеры, определённые в интерфейсе.
множественная реализация (List<class>)
`implements` позволяет реализовать несколько интерфейсов одновременно.
`implements` не даёт доступ к реализации или конструкторам — только к сигнатурам методов и геттеров/сеттеров.
Аспект | implements | extends | mixin |
---|---|---|---|
Наследует поведение? | Нет | Да | Да |
Может реализовать несколько? | Да | Нет | Да |
Подходит для | Интерфейсы | Полное наследование | Добавление поведения без состояния |