列表扩展集合为什么?

时间:2014-08-22 07:27:36

标签: java list collections

公共接口列表扩展集合

Collection是一个接口,而不是List扩展它而不是实现的原因?

5 个答案:

答案 0 :(得分:5)

在Java中:

  • 可以extends另一个
  • 可以implements一个或多个界面
  • 界面可以extends另一个界面

即,在具有"超级界面"的界面的上下文中,我们使用' extends'而不是'实现'因为接口永远不会实现任何东西。它扩展了现有合同。

答案 1 :(得分:0)

interface视为行为列表。 Animal可以eat()move()。每只动物的表现都不同,但每只动物都会这样做。因此,interface会列出行为,class implements这些行为(定义动物如何移动或吃掉)。所以class Elephant implements Animal。 现在可以扩展这个行为列表 - 例如,狗可以吠叫。这就是为什么interface Dog extends Animal。您可以创建class Poodle implements Dog。本课程将解释贵宾犬的移动,吃饭和吠叫的确切方式。

此外,可以扩展类 - 这意味着您可以通过扩展MinaturePoodle extends Poodle来添加行为或覆盖主类Poodle的行为。

总结:类可以扩展其他类或实现接口(行为)。 接口(行为)可以通过其他接口扩展或通过类实现(通过创建方法主体)。 http://docs.oracle.com/javase/tutorial/java/IandI/nogrow.html

答案 2 :(得分:0)

List是接口,接口没有定义范围(从java 7开始,jdk 8提供了默认方法)。

所有常见类型的特征集合都被概括并汇总到collection界面,该界面后来专注于不同的集合,如ListMap或{{ 1}}。

Set List类型与collection& SetMapArrayList的实现,List也是Collection的类型。

答案 3 :(得分:0)

来自Doc

  

List接口在迭代器,add,remove,equals和hashCode方法的契约上放置了除Collection接口中指定的规则之外的其他规定。为方便起见,此处还包含其他继承方法的声明

答案 4 :(得分:0)

列表是接口,接口没有定义范围(因为java 7,jdk 8提供了默认方法)。

而ArrayList,LinkedList是一个类,该类实现接口。

基本层次结构为 列表列表= new ArrayList <>(); 这里的list是接口,因此我们不能创建它的对象,但是ArrayList是可以使用它的类。

相同的原则适用于集合,队列,双端队列。

MAP也是一个界面,但是它是独立的。

列表扩展集合,集合扩展可迭代。