菜鸟的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'等来调用这个方法。它允许更多的抽象代码和对你的实现的改变而不会打破另一种方法的合同。 –