当我们使用引用类型和对象类型时

时间:2014-04-22 12:17:33

标签: java

我对ArrayList和List有疑问。 在这种情况下,我们应该使用ArraryList,如:

ArrayList obj = new ArrayList();

在这种情况下,我们应该使用List Interface。

List obj =  new ArrayList();

他们之间有什么区别?

2 个答案:

答案 0 :(得分:1)

如果需要调用特定于实现的方法,请使用实现。

当你写:

List obj =  new ... //ArrayList() or LinkedList()

编译器只知道obj是List。因此,您不能使用特定于一个实现的方法。

例如,如果您需要访问LinkedList的最后一个元素,则需要声明如下:

LinkedList = obj = new LinkedList();

现在,objLinkedList。因此,您可以使用obj.last()

答案 1 :(得分:0)

如果你想使用特定于ArrayList的方法,你想要第一种情况,否则最好使用第二种情况。对于第二种情况,如果要切换到不同的List实现,则无需进行更改。