Проверяет понимание классического наследования в ООП и его роли в переиспользовании кода и построении иерархий типов.
Наследование — один из базовых принципов объектно-ориентированного программирования. Идея проста: если у нас есть общий набор полей и методов, его можно вынести в базовый класс, а конкретные классы будут расширять его, добавляя или переопределяя поведение. Это уменьшает дублирование и делает модель предметной области более выразительной.
Когда класс B наследует класс A, объект B получает доступ ко всем публичным и защищённым членам A. Внутри конструктора B обычно вызывается конструктор A (через super или автоматически), чтобы инициализировать унаследованную часть состояния. Методы можно переопределять, сохраняя совместимость по сигнатуре.
class Animal {
constructor(public name: string) {}
speak(): string { return `${this.name} издаёт звук`; }
}
class Dog extends Animal {
constructor(name: string, public breed: string) {
super(name); // вызов конструктора родителя
}
speak(): string { return `${this.name} лает`; }
}
const d = new Dog('Рекс', 'Лабрадор');
console.log(d.speak()); // Рекс лает
console.log(d instanceof Animal); // trueГлубокие иерархии усложняют поддержку, а жёсткая связь родителя и потомка мешает изменениям. Поэтому часто предпочитают композицию или интерфейсы. Наследование стоит применять, когда отношение действительно является отношением «is-a» и общее поведение стабильно.
Уровень
Рейтинг:
5
Сложность:
2
Навыки
JavaScript
TypeScript
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию