几天前我进行了一次面试,并被抛出了这样的问题。
Q:反转一个链表。给出以下代码:
public class ReverseList {
interface NodeList {
int getItem();
NodeList nextNode();
}
void reverse(NodeList node) {
}
public static void main(String[] args) {
}
}
我很困惑,因为我不知道接口(interface)对象可以用作方法参数。面试官解释了一点,但我仍然不确定。有人能启发我吗?
最佳答案
这实际上是使用界面最常见和最有用的方法之一。接口(interface)定义了一个契约,您的代码可以与任何实现该接口(interface)的类一起工作,而无需知 Prop 体的类——它甚至可以与编写代码时还不存在的类一起工作。
Java 标准 API 中有很多示例,尤其是在集合框架中。例如,Collections.sort()可以对实现 List
接口(interface)的任何东西进行排序(不仅仅是 ArrayList
或 LinkedList
,尽管实现自己的 List
并不常见) 并且其内容实现了 Comparable
接口(interface)(不仅仅是 String
或数字包装类 - 并且让您自己的类实现 Comparable
用于此目的是相当常见)。
关于java - 接口(interface)作为Java中的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2575429/