Что нужно знать про abstract class и interface class во Flutter/Dart?

FlutterMiddle: уверенно применяет в рабочем проекте, видит риски и тестируемостьDart CoreТеорияabstract-classdartdart-coreinterfaceoop

Что хотят услышать интервьюеры:

Коротко: Абстракции в Dart позволяют отделить контракт от реализации; классы могут реализовываться через implements или наследоваться через extends.

Ответ:

Где применяется:

  • интерфейсы полезны для тестирования
  • абстрактный класс может иметь общую реализацию
  • контракт не должен зависеть от Flutter UI

Пример:

abstract interface class AuthRepository {
  Future<User> login(LoginCommand command);
}

Как отвечать на собеседовании: объясните назначение, границы применения и почему это лучше альтернативы в конкретном сценарии. Типичная ошибка: путать extends и implements.

Источники

Похожие вопросы