Что нужно знать про abstract class и interface class во Flutter/Dart?
Что хотят услышать интервьюеры:
Коротко: Абстракции в Dart позволяют отделить контракт от реализации; классы могут реализовываться через implements или наследоваться через extends.
Ответ:
Где применяется:
- интерфейсы полезны для тестирования
- абстрактный класс может иметь общую реализацию
- контракт не должен зависеть от Flutter UI
Пример:
abstract interface class AuthRepository {
Future<User> login(LoginCommand command);
} Как отвечать на собеседовании: объясните назначение, границы применения и почему это лучше альтернативы в конкретном сценарии. Типичная ошибка: путать extends и implements.