Выбор ответа Junior Классы и интерфейсы обновлено
Экземпляр абстрактного класса
Вопрос
Какая строка не скомпилируется?
abstract class Shape {
abstract area(): number;
}
class Circle extends Shape {
area() { return 3; }
}
const s1 = new Shape(); // A
const s2 = new Circle(); // B
const s3: Shape = new Circle(); // C
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: A. Абстрактный класс нельзя создать через new: у него есть нереализованные абстрактные члены.
Варианты ответа
- Aправильный ответ
- B
- C
- Все компилируются
Разбор
Абстрактный класс нельзя создать через new: у него есть нереализованные абстрактные члены. Строка A даёт ошибку. Наследник Circle реализует area, его создавать можно (B), а переменной типа Shape можно присвоить наследника (C).
«Все компилируются» неверно: запрет создания и есть смысл abstract.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.