Ответ 1
Вы должны пойти с конструктором private
.
Если ваш класс является абстрактным, он может быть расширен и объекты могут быть созданы. В соответствии с моим пониманием из вопроса, что вы хотите, это неинтересный класс.
from Пункт 4 Эффективной java:
Попытка принудительного применения неинвертируемости путем создания абстрактного класса не работает. Класс может быть подклассом, а подкласс - экземпляром. Кроме того, он вводит пользователя в заблуждение, думая, что класс был предназначен для наследования