Выбор ответа Junior Dart: классы и миксины спрашивают часто обновлено
Dart: implements против extends
Вопрос
Класс B implements A. Что получает B от A?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Только интерфейс: все члены A придётся реализовать в B самостоятельно. В Dart каждый класс неявно задаёт интерфейс, и implements берёт только его: сигнатуры без реализации, поэтому всё нужно написать самому, и super на A не указывает.
Варианты ответа
- Реализацию всех методов
A, как приextends, плюс возможность вызыватьsuper - Реализацию только абстрактных методов, а конкретные методы придётся написать самому
- Ничего:
implementsработает только с классами, объявленными с модификаторомinterface - Только интерфейс: все члены
Aпридётся реализовать вBсамостоятельноправильный ответ
Разбор
В Dart каждый класс неявно задаёт интерфейс, и implements берёт только его: сигнатуры без реализации, поэтому всё нужно написать самому, и super на A не указывает. Реализацию наследует extends. Модификатор interface из Dart 3 ограничивает, что можно делать с классом вне библиотеки, но для implements он не обязателен.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Dart: классы и миксины»
- Dart 3: модификатор interface
- Dart: переопределение == без hashCode
- Dart: расширения разрешаются статически
- Dart: зачем нужен factory-конструктор
- Dart: const и именованный конструктор
- Виды конструкторов в Dart
- extension type
- Dart: ключевое слово on у миксина