gpt4 book ai didi

java - calendar.getInstance() - 它如何返回对象

转载 作者:行者123 更新时间:2023-12-02 05:00:31 25 4
gpt4 key购买 nike

文档位于Oracle

Calendar class is an abstract class.

同一个文档也说

Calendar's getInstance method returns a Calendar object whose calendarfields have been initialized with the current date and time: Calendar

rightNow = Calendar.getInstance();

经过stackoverflow这篇文章的讨论后我知道我们不能创建抽象类的对象。要创建抽象类的对象,我们必须实现它的具体子类。

有人可以帮助我理解(或给我指出一些引用资料)为什么我们可以创建 Calendar 类的对象,即使该类本身是一个抽象类?
或者
我遗漏了一些关于抽象类的非常重要的观点

最佳答案

getInstance() 在内部创建隐藏在某处的某个子类的对象。 (如果您在其实现中向下搜索,它最终会创建 GregorianCalendar 等子类的实例,并将其作为 Calendar 返回。)

像这样的静态工厂方法允许Calendar之类的API在内部选择如何创建实例——是创建子类实例,还是为整个类缓存一个实例,或者其他什么。这是一个很好的设计实践。

关于java - calendar.getInstance() - 它如何返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com