前几天去面试,被问到了这样的问题。
问:反转链表。给出以下代码:
public class ReverseList {
interface NodeList {
int getItem();
NodeList nextNode();
}
void reverse(NodeList node) {
}
public static void main(String[] args) {
}
}
我很困惑,因为我不知道接口对象可以用作方法参数。面试官稍微解释了一下,但我还是不太确定。有人可以启发我吗?
事实上,这是使用界面的最常见和最有用的方法之一。接口定义了一个契约,您的代码可以使用任何实现该接口的类,而不必知道具体的类 - 它甚至可以使用在编写代码时尚不存在的类。
Java标准API中有很多例子,特别是在集合框架中。例如,集合.sort() http://java.sun.com/javase/6/docs/api/java/util/Collections.html#sort(java.util.List)可以对任何实现的东西进行排序List
接口(不仅仅是ArrayList
or LinkedList
,尽管实现你自己的List
不常见)并且其内容实现了Comparable
接口(不仅仅是String
或数字包装类 - 并让你自己的类实现Comparable
为此目的是quite常见的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)