Calendar是一个抽象类,为什么还能通过getInstance()获得实例化的对象
抽象类不是不可以实例化的么?
抽象类不是不可以实例化的么?
2016-07-09
首先,抽象类可以有具体的实现方法。其次,看下源码:
if ("th".equals(aLocale.getLanguage())
&& ("TH".equals(aLocale.getCountry()))) { return new sun.util.BuddhistCalendar(zone, aLocale);
} 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);
该方法内部最终返回的是具体的实现类,也就是子类,而不是你所理解的Calendar本身实例化的类。
2016年10月09日回答
3 评论
编辑
举报