java - Iterable<Key> 作为返回类型,这是什么意思?

标签 java interface return

我正在阅读有关顺序搜索实现的信息 SequentialSearch , 发现了一些毫无意义的东西(或者至少在我看来是这样)

    public Iterable<Key> keys()  {
    Queue<Key> queue = new Queue<Key>();
    for (Node x = first; x != null; x = x.next)
        queue.enqueue(x.key);
    return queue;
}

方法如何返回接口(interface)?我们不应该返回一个类/原始类型吗?

最佳答案

这是多态性的一个例子。 意味着可以从此方法返回对实现该接口(interface)的任何类的对象的引用。

这种设计用于方法要被子类覆盖的情况。 方法签名表示一个契约,所有重写此方法的子类都应返回方法签名中提到的接口(interface)的具体实现。

关于java - Iterable<Key> 作为返回类型,这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28335487/

相关文章:

C++ 方法继承但返回类型错误(自动转换?typeid(*this)?)

函数中的 PHP 异常 VS 返回用法(最佳实践)

c# - 如何编写一个可能返回两种不同类型的方法?

java - Maven surefire 测试重用 fork 与 parallel

syntax - 关键字 var 后的下划线和接口(interface)名称是什么意思?

java - 如何避免由于 Kotlin 构建错误 : Supertypes of the following classes cannot be resolved 而重新启动 Android Studio

java - 发送一个 Object 类型的对象而不是 String - 多态性

java - ArrayList优化内存

java - 抛出私有(private)异常有意义吗?

java - 我如何在 bash 中设置 JAVA_HOME?