qq_我虽很帅请别崇拜_03215448
2016-07-09 09:32
抽象类不是不可以实例化的么?
首先,抽象类可以有具体的实现方法。其次,看下源码:
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 评论
编辑
静态抽象类
getInstance()方法中返回的是createCalendar()方法,在这个createCalendar()方法中通过多态new了Calendar的子类,创建了对象。
Java入门第三季
409792 学习 · 4340 问题
相似问题
回答 3
回答 2