Java代码中接口的实现

时间:2017-08-07 18:21:49

标签: java

所以我有一行代码:

List<Deque<Integer>> pegs = new Arraylist<>();
for(int i=0; i< NUM_PEGS; i++){
   pegs.add(new LinkedList<Integer>());
}

我想知道Arraylist通过实现接口List获得了哪些额外的功能?我之所以能够将LinkedList添加到pegs是因为LinkedList实现了Deque接口吗?

2 个答案:

答案 0 :(得分:5)

我不会说ArrayList通过实现List接口获得额外的功能。它实际上提供了比List合约中指定的功能更多的功能。您可以比较ListArrayList的文档,以查看差异。

对于你的第二个问题,是的,你可以在Deque的文档中看到它是由LinkedList实现的。

答案 1 :(得分:3)

通常,课程不会收到任何&#34;额外的功能&#34;通过实现一个接口。

(自java 8以来,这已经有所改变,因为接口现在可以包含default方法,所以实际上可以通过实现接口来接收额外的功能,但这不是什么这个问题是关于。)

实现接口时,类必须提供接口所需的所有功能。必须将代码添加到类中以提供该功能。 ArrayList为了提供List界面而做了所有这些。

那么,您可能会问,实现接口的重点是什么?

关键是,在您的代码中,您可以将列表简称为List,而不知道它实际上是ArrayList,这意味着您的代码可以与任何类一起使用实现List接口,而不仅仅是ArrayList

至于你的第二个问题:答案是&#34;是&#34;。