На самом деле, что вы можете получить от
public static final NumberFormat getInstance()
- это то, что ТАКЖЕ a NumberFormat
, но это конкретный экземпляр его подкласса.
В любом случае вы не можете создать экземпляр абстрактного класса, чтобы метод не мог вернуть простой NumberFormat, но что-то, что не менее a NumberFormat
. В этом случае метод используется для получения средства форматирования по умолчанию для вашей локали, которое, вероятно, будет DecimalFormat
или некоторые его варианты
В документации DecimalFormat
говорится:
Чтобы получить NumberFormat для
конкретный язык, в том числе по умолчанию
локаль, позвоните одному из NumberFormat
заводские методы, такие как
деЫпзЬапсе (). В общем, не звоните
конструкторы DecimalFormat
напрямую, так как NumberFormat
фабричные методы могут возвращать подклассы
кроме десятичного формата.
В завершение: вы можете быть уверены, что если оно абстрактное, то вы не можете создать его экземпляр, ни сама Java не может ..., так как в объявлении отсутствуют некоторые части, поэтому это настоящий неполный тип.