Вопрос проверяет понимание механизма абстрактных классов и принципов проектирования интерфейсов.
Короткий ответ
Абстрактные классы не позволяют создать объект, пока не реализованы все обязательные методы. Это предотвращает ошибки на этапе выполнения. При использовании NotImplementedError ошибка возникает только при вызове метода. Абстрактные классы делают контракт класса более явным.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.