0Pricing
Dart Academy · Урок

Модификаторы base, interface и final

Управляйте тем, как другие расширяют ваши классы

«Модификаторы base, interface и final» — бесплатный урок Dart Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.

Модификаторы классов

В Dart 3 появились модификаторы, управляющие тем, как другие разработчики могут повторно использовать Ваш класс. Они позволяют автору библиотеки установить чёткие и обязательные ограничения.

Модификатор base

Класс base можно расширять, но нельзя реализовывать. Это гарантирует, что каждый подтип действительно наследует Вашу реализацию.

base class Animal {
  void breathe() {}
}

Зачем нужен base

С base Вы знаете, что все подтипы используют Ваш конкретный код, поэтому закрытые члены и инварианты остаются надёжными во всей иерархии.

Модификатор interface

Класс interface можно реализовывать, но нельзя расширять за пределами его библиотеки. Другие классы обязуются соблюдать форму интерфейса, но не используют Ваш код.

interface class Logger {
  void log(String m) {}
}

Зачем нужен interface

Модификатор interface идеально подходит для контрактов. Вызывающий код реализует сигнатуры Ваших методов, а реализация остаётся у Вас закрытой.

class FileLogger implements Logger {
  void log(String m) {}
}

Модификатор final

Класс final нельзя ни расширять, ни реализовывать за пределами его библиотеки. Тип полностью защищён от дальнейшего переиспользования.

final class Money {}

Зачем нужен final

Пометьте класс как final, если другие не должны изменять его поведение. Тогда Вы сможете развивать его, не нарушая работу подклассов.

base распространяется вниз

Если Вы расширяете класс base, Ваш подкласс также должен быть base, final или sealed. Это ограничение передаётся по всей цепочке.

base class Cat extends Animal {}

Сочетание модификаторов

Вы можете сочетать такие слова, как base mixin или sealed, с другими модификаторами, чтобы точнее настроить правила повторного использования. Каждое сочетание выражает конкретное намерение.

base mixin Swimmer {
  void swim() {}
}

Свобода внутри одной библиотеки

Эти ограничения действуют только за пределами библиотеки, в которой объявлен тип. В собственном пакете Вы можете свободно расширять классы и реализовывать их.

Выбор подходящего модификатора

Выбирайте interface для контрактов, base для общего кода, а final — чтобы полностью запретить дальнейшее использование. Выбирайте самое мягкое правило, которое остаётся безопасным. 🧭

Быстрая проверка

Быстрая проверка модификаторов классов.

Итоги

Вы узнали, что base требует наследования, interface требует реализации, а final запрещает и то и другое, позволяя управлять повторным использованием. 🔐

Часто задаваемые вопросы

Урок «Модификаторы base, interface и final» бесплатный?

Да — полный текст урока «Модификаторы base, interface и final» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.

Чему я научусь в уроке «Модификаторы base, interface и final»?

Управляйте тем, как другие расширяют ваши классы Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Dart Academy?

Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Модификаторы base, interface и final»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Dart Academy?

Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Поля final и глубокая неизменяемость
  2. Классы sealed и исчерпывающий switch
  3. Модификаторы base, interface и final
  4. copyWith и равенство по значению
← Назад к Dart Academy