Calendar is abstract because there is no global calendar system. Most use the Gregorian calendar; that's why it has a matching concrete class GregorianCalendar. There are at least two other active calendars - the
Buddhist calendar and the
Japanese imperial calendar. Those too have matching (non-public) classes in
Java.
DateFormat and NumberFormat are abstract because, well, that's how it's designed. They are meant to be used as the root of entire formatter hierarchies*. They provide no direct implementation; instead that's up to subclasses like SimpleDateFormat (the most often used DateFormat subclass) and DecimalFormat (the most often used NumberFormat subclass). But because DateFormat and NumberFormat are abstract it's easy to write and use a different one.
* Actually sub hierarchies, with java.text.Format being the root of the entire formatter hierarchy.