菜鳥的Java問題:Queue q = new LinkedList和LinkedList q = new LinkedList之間的區別?
有人能解釋
1. Queue<Integer> q = new LinkedList<Integer>() and
2. LinkedList<Integer> q = new LinkedList<Integer>()
在Java中
之間的區別?我假定在聲明1中,我不能使用LinkedList特定的方法,只能使用Queue接口描述的方法。然而,我只是嘗試過q.size(),發現它起作用,儘管這不是Queue接口的一部分。
將這些對象作爲參數傳遞的區別?有什麼不同?
好的。所以我最初的懷疑是正確的,我只能訪問Queue方法,而不是例1中特定於LinkedList的方法?我通常在例子中看到這樣做。這裏的主要優點是多態嗎?所以我可以有一個Queue數組,或者將它作爲Queue等傳遞給方法?任何其他具體原因,這是一個很好的做法? –
是的,沒錯。 – luke657
如果 - 例如 - 你有一個方法需要'Queue'作爲參數,那麼你就可以用'PriorityQueue','LinkedList'等來調用這個方法。它允許更多的抽象代碼和對你的實現的改變而不會打破另一種方法的合同。 –