抽象类通过自己的静态方法实例化

时间:2014-02-09 19:07:48

标签: java class static abstract

DocumentBuilderFactory f = DocumentBuilderFactory.newInstance(); // 

DocumentBuilderFactory是抽象类。 newInstance是静态方法。无法弄清楚它是如何工作的。 会发生什么?

我的意思是它的工作原理......如果我没弄错,我们就不能制作抽象类的实例。

4 个答案:

答案 0 :(得分:0)

你在“=”的右侧没有DocumentBuilderFactory的对象。

这是在构造函数外部创建DocumentBuilderFactory的工厂方法。

答案 1 :(得分:0)

这看起来像某种单例模式,newInstance方法是返回EXACT相同类型,还是返回扩展DocumentBuilderfactory的实际具体类?它真的是抽象的,还是有私有构造函数?

答案 2 :(得分:0)

DocumentBuilderFactory.newInstance()返回DocumentBuilderFactory的具体子类的实例。您可以阅读其来源here

答案 3 :(得分:0)

newInstance是一个静态方法,而不是构造函数,因此可以自由地创建DocumentBuilderFactory的具体子类型的实例。它做的。我不知道实现,但我假设它实例化了这个类的默认实现。