Oracle这里的文档说
日历类是一个抽象类。
同一个文档还说
Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已用当前日期和时间初始化: Calendar
rightNow = Calendar.getInstance();
经过stackoverflow这篇文章的讨论后,我明白我们不能创建抽象类的对象。要创建抽象类的对象,我们必须实现它的具体子类。
有人可以帮助我理解(或指出一些参考资料)为什么我们可以创建 Calendar 类的对象,即使该类本身是一个抽象类?
或者
我遗漏了一些关于抽象类的非常重要的点
getInstance()
在内部创建隐藏在某处的某个子类的对象。(如果你在它的实现中向下搜索,它最终会创建子类的实例,GregorianCalendar
并将其作为 a 返回Calendar
。)
像这样的静态工厂方法允许 APICalendar
在内部选择如何创建实例——是创建一个子类实例,还是为整个类缓存一个实例,或者其他什么。这是一个很好的设计实践。
归档时间: |
|
查看次数: |
2785 次 |
最近记录: |