首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

请问:java API接口 是怎么被调用的

2012-08-28 
请教:java API接口 是如何被调用的?Java codepublic static void main(String[] args) throws Exception {

请教:java API接口 是如何被调用的?

Java code
public static void main(String[] args) throws Exception {        DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();        DocumentBuilder db=factory.newDocumentBuilder();        Document document=db.parse("city.xml");                NodeList list=document.getElementsByTagName("地区");  //1            Node node=list.item(0);                               //2         System.out.println(node.getTextContent());    }


问题1:代码中的NodeList 和 Node 是个接口,接口中不是只有方法体不能有实现的嘛?java中怎么就可以使用呢? 
  比如NodeList 如果说返回的对象是NodeList的类型,那肯定也是NodeList的子类或者new过NodeList返回的吧,但是
  API中NodeList没有子类而且是个接口也不能被new啊。。。底层封装?java中到底是什么原理??

请高手给讲解一下调用原理...先谢了。

[解决办法]
NodeList list=document.getElementsByTagName("地区");

这个返回的是一个实现了NodeList接口的类。NodeListImpl..之类的东西。不是NodeList的子类。是实现类

[解决办法]
相当于
List<String> tmp = new ArrayList<String>();
[解决办法]
这是java中的多态,NodeList是一个接口没错,但是document.getElementsByTagName("地区"); 返回的确实实现了NodeList接口的一个具体实现类,所以我们可以把这个返回值看做是NodeList来操作。
举个例子:
苹果,我可以看做是个接口。而红苹果我们可以看做是苹果的具体类。那我们可以说红苹果是苹果。就正如
Map<String, String> map = new HashMap<String, String>();
map = new TreeMap<String, String>();一样

热点排行