Предотвращение создания экземпляров - это вопрос реализации, поэтому это хорошая причина, если вы думаете о Java, C # и т. Д.
Однако на уровне моделирования вы бы хотелиабстрактный класс, если имеется несколько подклассов, и не имеет смысла , что объект имеет супертип, но не имеет ни одного из подтипов.
Таким образом, в основном вы не препятствуете созданию экземпляра объекта.класс, поскольку любой экземпляр подкласса также является экземпляром абстрактного суперкласса.То, что вы делаете в этом случае, предотвращает создание экземпляра суперкласса отдельно , т.е. принудительно использует один из подтипов .
Ответ на редактирование: Да!