JAVA 接口List 的iterator()方法为何可以直接使用

请看一部分代码:
BeerExpert be = new BeerExpert();
List result = be.getBrand(BearColor);
out.println("颜色是 :" + BearColor);

Iterator it = result.iterator();
while(it.hasNext())
{
out.println("<H2>try "+it.next());
}

对象be的方法getBrand() 返回一个list类,
但是Iterator it = result.iterator(); 这个语句,List作为一个接口,它其中的方法
iterator()可以直接使用么?
接口的方法不是必须要通过继承类实现了才可以使用的么

1 你看BeerExpert 中方法返回的是实际是一个实体类,是继承了List的类,这个类已经实现了iterator接口中的方法
2 Iterator it = result.iterator(); 你这一句实际是调用的实体类中的iterator()方法

例如:

public List doSth()
{
doSth();
return new ArrayList();
}

我调用的时候可以 直接写 doSth().iterator(); 实际是操作new ArrayList()的iterator方法,而不是List的iterator方法

你说的这个是面向对象中最重要的一点,就是继承关系!

就说这么多了,有问题在问我喽!
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-12
be.getBrand(BearColor);是一个实现的List接口的类,这就是多态比如be.getBrand(BearColor);可能是一个ArrayList但是他实现了List接口所以List可以对象可以指向ArrayList对象,iterator()方法是一个标准,代表每个集合必须实现的方法,这个方法就是把集合对象转换成iterator对象,从而实现遍历.
第2个回答  2010-10-12
你看下be.getBrand(BearColor),它返回来就是已经实现了iterator()方法的对象,所以可以Iterator it = result.iterator();本回答被提问者采纳
第3个回答  2010-10-12
java.awt
类 List
java.lang.Object
java.awt.Component
java.awt.List
List是一个类
第4个回答  2010-10-12
这些不是应该写在action里面的么,接口只写调用方法。
相似回答