Iterable <Key>作为返回类型,这意味着什么?

sth*_*der 4 java return interface

我正在阅读有关sequencesearch的实现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;
}
Run Code Online (Sandbox Code Playgroud)

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

Gau*_*Pal 5

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

如果要由子类覆盖该方法,则使用此设计。方法签名表示一个协定,所有重写此方法的子类都应返回其对方法签名中提到的接口的特定实现。