抽象类Calendar 的直接子类是 GregorianCalendar
API文档:GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
再给你看一下Calendar类中有关的源代码:- public static Calendar getInstance()
- {
- Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault());
- cal.sharedZone = true;
- return cal;
- }
- private static Calendar createCalendar(TimeZone zone,
- Locale aLocale)
- {
- // If the specified locale is a Thai locale, returns a BuddhistCalendar
- // instance.
- if ("th".equals(aLocale.getLanguage())//
- && ("TH".equals(aLocale.getCountry()))) {
- return new sun.util.BuddhistCalendar(zone, aLocale);//泰国佛历。将佛陀涅盘年数543年加上今的年数(例:543年+2009年+1年=2553年),新年过后增加一年计算,如此类推。
- } else if ("JP".equals(aLocale.getVariant())
- && "JP".equals(aLocale.getCountry())
- && "ja".equals(aLocale.getLanguage())) {
- return new JapaneseImperialCalendar(zone, aLocale);//小日本皇历
- }
- // else create the default calendar
- return new GregorianCalendar(zone, aLocale);//公历
- }
复制代码 它使用了多态特性,创建并返回的实例其实是他子类的实例。 |