This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
I want to know why Sun make Calendar(or DateFormat or NumberFormat etc.) class as a abstract class. This class can also be as a normal class and its methods can also be have some implementation. We can also get instance of Calendar class by Calendar.getInstance() without extending the Calendar class.
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.