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)不再可用,因为它使明显的类型队列中.还没有我们需要施展吗?
从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>- 像往常一样.