接口作为Java中的方法参数

zihaoyu :

我几天前接受采访时,被问到这样的问题。

问:反向链接列表。给出以下代码:

public class ReverseList { 
    interface NodeList {
        int getItem();
        NodeList nextNode();
    }
    void reverse(NodeList node) {

    }
    public static void main(String[] args) {

    }
}

我很困惑,因为我不知道接口对象可以用作方法参数。面试官解释了一下,但是我仍然不确定。有人可以启发我吗?

迈克尔·伯格沃特(Michael Borgwardt):

实际上,这是使用接口的最常见和最有用的方法之一。该接口定义了一个契约,您的代码可以与实现该接口的任何类一起使用,而不必知道具体的类-它甚至可以与编写代码时尚不存在的类一起使用。

Java标准API中有很多示例,尤其是在collections框架中。例如,Collections.sort()可以对实现List接口的任何东西(不是仅仅实现ArrayListor 进行排序LinkedList,尽管实现自己的List情况并不常见),并且其内容也实现Comparable接口的实现(不仅仅是String数字包装器类或数字包装类),并Comparable为此实现自己的类目的普遍)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章