абстрактный класс NumberFormat - очень запутался в getInstance ()

Я новичок в Java, и у меня есть вопрос новичка:

NumberFormat является абстрактным классом, и поэтому я предполагаю, что не могу сделать его экземпляр. Но есть публичный статический (фабричный?) МетодgetInstance() что позволяет мне сделать

NumberFormat nf = NumberFormat.getInstance();  

Я совсем запутался. Я буду рад, если кто-то может дать мне подсказки:

Если есть открытый метод для получения экземпляра этого абстрактного класса, почему у нас нет и конструктора?Это абстрактный класс; как мы можем иметь этот статический метод, дающий нам экземпляр класса?Почему выбирают такой дизайн? Если я предполагаю, что возможно иметь экземпляр абстрактного класса (???), я не понимаю, почему этот класс должен быть абстрактным вообще.

Спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос