Встречается на собеседованиях • сегодня
В чем разница между абстрактным класом и интерфейсом
Абстрактный класс может содержать реализацию методов, поля и конструкторы, тогда как интерфейс — только абстрактные методы (до TS 1.8) и сигнатуры. Класс может наследовать только один абстрактный класс, но реализовать множество интерфейсов.
Пример:
typescript
// Абстрактный класс
abstract class Animal {
abstract makeSound(): void;
move(): void {
console.log("Moving...");
}
}
// Интерфейс
interface IFlyable {
fly(): void;
}
class Bird extends Animal implements IFlyable {
makeSound() { console.log("Chirp!"); }
fly() { console.log("Flying..."); }
}Ключевые отличия:
- Абстрактный класс — частичная реализация, интерфейс — контракт.
- Интерфейсы поддерживают множественное наследование.
- Абстрактные классы могут иметь модификаторы доступа, интерфейсы — только
public.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы