2015-01-29 1 views
0

Во-первых, мой вопрос относительно этого: Calling method on Document interface in JavaРабота с интерфейсами в Java. Например. DOM Document Interface

Но я хочу спросить больше.

Например, насколько я понял, «кто-то» написал класс, который реализует интерфейс «Документ», и с помощью метода DocumentBuilder.parse что-то возвращается. Итак, вопрос 1: Что возвращается? Ссылка на класс/объект? Ссылка на интерфейс класса/объекта? Как это делается? И поскольку возвращаемый тип имеет интерфейс «Документ», как можно его вызвать?

Также, (вопрос 2), так как DocumentBuilder возвращает интерфейс, как можно расширить класс, из которого объект возвращается из метода DocumentBuilder.parse, чтобы реализовать расширение интерфейса документа?

ответ

0

Вы можете проверить тип (класс), возвращаемый методом разбора:

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 

Этот класс реализует интерфейс Document, поэтому вы можете вызывать все методы этого интерфейса в этом экземпляре.

Что касается второго вопроса, вам необходимо создать свой собственный DocumentBuilderFactory вместе с реализацией всех других необходимых интерфейсов и классов. Вы можете использовать, чтобы повторно использовать и расширять существующие группы классов реализации, но это действительно зависит от дизайна этих классов.

Смежные вопросы