Document 和NodeList 接口調(diào)用的方法是在哪里實現(xiàn)的?
接口中是沒有方法實體的、需要實現(xiàn)類重寫,然后通過接口回調(diào)調(diào)用實現(xiàn)類重定的方法,那問題是:Document 和NodeList 都是接口,那下面程序中,接口調(diào)用的方法是在哪里實現(xiàn)的?
//創(chuàng)建 一個DocumentBuilder對象
DocumentBuilder db=dbf.newDocumentBuilder();
//通過 DocumentBuilder對象的parser方法加載books.xml文件到當前項目下
Document document=db.parse("books.xml");
//獲取所有book節(jié)點的集合
NodeList bookList=document.getElementsByTagName("book");
//通過 nodelist的getlength()方法可以獲取booklist的長度
System.out.println("一共有"+bookList.getLength()+"本書");
//遍歷每全個book節(jié)點
for(int i=0;i<bookList.getLength();i++){
2017-05-03
我喜歡刨根問底,雖然記住了過程,不影響這部分知識的運用,不過不弄請楚,老感覺別扭。你的回答,我不是很理解,我也百度了好久,都沒有明確說明這個問題的。但我在查DOM的時候,才知道,其本身是瀏覽器內(nèi)嵌的一個標準借口,Node,NodeList,Document等都是DOM中的接口,其方法應該是在DOM中實現(xiàn)的,而java只不過是引入了這些借口,其DocumentBuilderFactory和DocumentBuilder才是自身的,通過他們可以建立java和dom的通道,可以調(diào)用dom同名借口中的方法,其實那些方法都是DOM中的。
2017-05-02
我認為是在getElementByTagName()相關(guān)的方法中實現(xiàn),其返回的是NoteList類型的集合,雖然NoteList是接口類型,但在調(diào)用getElementByTagName()方法時其相關(guān)的類已實現(xiàn)了NoteList接口,我們可以追蹤getElementByTagName()方法定義,就可以逐步看到到底是哪個類實現(xiàn)了NoteList接口。我感覺這也是接口、OO封裝和繼承的好處,讓我們關(guān)注目的,忽略具體基礎(chǔ)的實現(xiàn)。這我的淺見,僅供參考,請多指教!