在Java中使用接口。例如DOM文档接口

在Java中使用接口。例如DOM文档接口,java,xml,dom,interface,extends,Java,Xml,Dom,Interface,Extends,首先,我的问题是关于: 但我想问更多 例如,据我所知,有人编写了一个实现文档接口的类,并使用DocumentBuilder.parse方法返回了一些内容。那么,问题1:返回什么?对类/对象的引用?类/对象接口的引用?这是怎么做到的?既然返回的类型是documentinterface,那么如何调用它的方法呢 另外,问题2由于DocumentBuilder返回接口,如何扩展从DocumentBuilder.parse方法返回对象的类以实现文档接口的扩展 您可以检查parse方法返回的类型类: Doc

首先,我的问题是关于:

但我想问更多

例如,据我所知,有人编写了一个实现文档接口的类,并使用DocumentBuilder.parse方法返回了一些内容。那么,问题1:返回什么?对类/对象的引用?类/对象接口的引用?这是怎么做到的?既然返回的类型是documentinterface,那么如何调用它的方法呢


另外,问题2由于DocumentBuilder返回接口,如何扩展从DocumentBuilder.parse方法返回对象的类以实现文档接口的扩展

您可以检查parse方法返回的类型类:

DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
DocumentBuilder db = f.newDocumentBuilder();
Document doc = db.parse(...);
System.out.println(doc.getClass().getName());
如果您只使用JDK,您很可能会看到:

com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl
此类实现文档接口,因此您可以在该实例上调用该接口的所有方法

至于第二个问题,您必须创建自己的DocumentBuilderFactory以及所有其他必需接口和类的实现。您可能能够重用和扩展现有的实现类组,但这实际上取决于这些类的设计