Ответ
Абстрактный класс — это класс, который нельзя инстанциировать напрямую. Он служит шаблоном для других классов, определяя общую структуру и поведение.
Особенности:
- Может содержать абстрактные методы (без реализации) и обычные методы.
- Наследники обязаны реализовать все абстрактные методы.
- Позволяет избежать дублирования кода.
Пример (TypeScript):
abstract class Animal {
abstract makeSound(): void; // Абстрактный метод
move(): void { // Обычный метод
console.log("Moving...");
}
}
class Dog extends Animal {
makeSound(): void { // Обязательная реализация
console.log("Woof!");
}
}
const dog = new Dog();
dog.makeSound(); // "Woof!"
dog.move(); // "Moving..."