java - 接口(interface)作为Java中的方法参数

标签 java oop interface

几天前我进行了一次面试,并被抛出了这样的问题。

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)的任何东西进行排序(不仅仅是 ArrayListLinkedList,尽管实现自己的 List 并不常见) 并且其内容实现了 Comparable 接口(interface)(不仅仅是 String 或数字包装类 - 并且让您自己的类实现 Comparable 用于此目的是相当常见)。

关于java - 接口(interface)作为Java中的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2575429/

相关文章:

vb.net - 使用重载成员 vb.net 实现继承接口(interface)

java - 接口(interface)中的方法数

java - junit5 的问题 - @DisplayName 不显示 testName

不继承属性的Python子类

java - 等到 DOS 命令执行完成 - Java

java - 我可以将自己的类数据保存到文件中吗?

java - 我将如何重载接口(interface)中的方法?

C# 如何在不使方法静态化的情况下调用接口(interface)内另一个类的方法?

java - 如何在发送到 servlet 之前操作变量

java - 带图形用户界面的 IPC(Java 和 native 代码)