2014-02-09 78 views
0
DocumentBuilderFactory f = DocumentBuilderFactory.newInstance(); // 

DocumentBuilderFactory是抽象类。 newInstance是静态方法。无法弄清楚它是如何工作的。 会发生什么?通过自己的静态方法实例化抽象类

我的意思是为什么它的工作原理......如果我没有弄错,我们不能做抽象类的实例。

+0

Java? 会发生什么?您错过了提供一些背景信息和错误信息。 –

+0

其实它工作。我不明白为什么这个表达能起作用。 –

+0

相关:http://www.javapractices.com/topic/TopicAction.do?Id=21和http://en.wikipedia.org/wiki/Abstract_factory_pattern –

回答

0

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

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

0

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

0

DocumentBuilderFactory.newInstance()返回DocumentBuilderFactory的具体子类的实例。你可以阅读它的源文件here

0

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