РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
94 of 723 menu

Ключевое слово mixin

Ключевое слово mixin используется для объявления миксина. Миксин - это специальная конструкция, которая позволяет добавлять функциональность (методы и свойства) в классы без использования классического наследования. Миксины решают проблему одиночного наследования в Dart, позволяя классу использовать код сразу из нескольких источников. При объявлении миксина можно указать ключевое слово on, которое ограничивает круг классов, к которым данный миксин может быть применен. Миксин не может иметь конструктор.

Синтаксис

mixin MixinName on SuperClass { // methods and properties } class MyClass extends SuperClass with MixinName { // class body }

Пример

Давайте создадим простой миксин, который добавляет классу метод для приветствия, и применим его:

mixin GreetMixin { void greet() { print('Hello from mixin'); } } class Person with GreetMixin { } void main() { Person person = Person(); person.greet(); }

Результат выполнения кода:

"Hello from mixin"

Пример

Давайте используем ключевое слово on, чтобы миксин мог применяться только к классам, наследующим определенный базовый класс:

class Animal { void breathe() { print('Breathing'); } } mixin WalkMixin on Animal { void walk() { print('Walking'); } } class Dog extends Animal with WalkMixin { } void main() { Dog dog = Dog(); dog.breathe(); dog.walk(); }

Результат выполнения кода:

"Breathing" "Walking"

Пример

Давайте применим несколько миксинов к одному классу, чтобы объединить их функциональность:

mixin FirstMixin { void first() { print('First'); } } mixin SecondMixin { void second() { print('Second'); } } class Combined with FirstMixin, SecondMixin { } void main() { Combined res = Combined(); res.first(); res.second(); }

Результат выполнения кода:

"First" "Second"

Смотрите также

  • ключевое слово with,
    которое применяет миксины к классу
  • ключевое слово mixin class,
    которое объявляет класс, пригодный для использования как миксин
  • ключевое слово extends,
    которое наследует класс от другого класса
  • ключевое слово implements,
    которое реализует интерфейс класса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить