Обычные классы требуют, чтобы вы предоставили реализации для всех методов.
Интерфейсы требуют, чтобы вы не предоставили какие-либо реализации для всех методов.
Абстрактные классы являются единственным типом класса, который позволяет вам иметь методы, которые содержат реализацию, и имеют методы, которые не предоставляют реализацию, но для ее предоставления требуется наследующий класс.
Тот факт, что вам разрешено добавлять методы без реализации, является причиной того, что вы не можете создать экземпляр абстрактного класса: вы можете создать экземпляр только того, что имеет реализации для всех его методов.