LinkedList<Integer> q = new LinkedList<>();和Queue<Integer> q = new LinkedList<>();一樣嗎?
我現在想創建一個隊列對象,正常情況下我會這樣寫:Queue<Integer> q = new Queue<>();
但是你仔細想想,這樣寫真的對嗎?
Queue是接口,但是接口是不能實例化一個對象的
那怎么辦?
先看看LinkedList部分源代碼
public class LinkedList<E>extends AbstractSequentialList<E>implements List<E>, Deque<E>, Cloneable, java.io.Serializable
可以看到 LinkedList實現了Deque(Deque繼承了Queue),所以可以用LinkedList類實例化一個對象,而返回類型仍然是Queue接口,這樣就創建好了一個隊列(java創建一個隊列理解起來真tm麻煩,還不如用c++呢)