java Queue接口多态性

pet*_*ter 1 java queue polymorphism interface

我正在阅读http://www.docjar.com/html/api/java/util/LinkedList.java.html

在Java中声明队列时

    Queue<Integer> queue = new LinkedList<Integer>();
Run Code Online (Sandbox Code Playgroud)

现场背后会发生什么?因为我看到队列是只有方法签名的接口,和LinkedList不直接实现它,所以它是如何覆盖这些方法(add(),peek(),poll(),offer(),和remove()),并做多态性这样呢?我的意思是,你只能访问一些特定的方法,但并非所有的人都从LinkedList例如public void add(int index, E element)不再可用,因为它使明显的类型队列中.还没有我们需要施展吗?

mer*_*ike 5

从JDK的源代码:

public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
Run Code Online (Sandbox Code Playgroud)

所以LinkedList<E>不直接实现Queue<E>,但确实实现Deque<E>,扩展Queue<E>:

public interface Deque<E> extends Queue<E> {
Run Code Online (Sandbox Code Playgroud)

因此,LinkedList<E>继承了抽象方法Queue<E>.

最重要的方法直接定义LinkedList<E>- 像往常一样.