Примесь, или Mixin в языке Dart – это класс, описывающий некоторое поведение. Он чем-то напоминает интерфейс, однако правила его использования несколько отличаются. Примеси не наследуются, а как бы подключаются, «примешиваются» к коду класса, поэтому и называются примесями. Отличие от интерфейса в Java заключается в том, что методы примеси уже не надо переопределять. Посмотрим на примере. Предположим, нам нужно описать музыканта, который умеет играть разные стили музыки. // некий абстрактный музыкант. Скрытый интерфейс содержит метод play()
class Musician {
// В интерфейсе
final instrument;
// Не в интерфейсе - это конструктор
Musician(this.name);
// В интерфейсе
void play() => 'Hi, I can play $instrument';
}
class Guitarist implements Musician with Jazz, Rock, Funk {
get name => 'Guitar';
void play(String arg) => 'Hi, I can play $arg by $instrument';
} Гитарист (Guitarist) имплиментирует Музыканта (Musician) и умеет играть разные стили. А вот как раз стили мы опиш