Java中的ArrayList不';是否从集合接口实现方法?

Java中的ArrayList不';是否从集合接口实现方法?,java,inheritance,multiple-inheritance,Java,Inheritance,Multiple Inheritance,我现在对那个问题有点困惑。我注意到ArrayList是一个实现List的类,List反过来扩展了集合 在Collection中,我们有一系列方法,其中一个可识别的方法是containsAll()。我查看了ArrayList的官方文档,但是可以看到ArrayList没有这样的方法。页面的页脚上写着“继承的方法”和containsAll() (从文档中)我不明白的是,containsAll()是否定义了,即使它在ArrayList类中有一个空的主体,还是根本没有定义?如果不是,这是否违反了Java的

我现在对那个问题有点困惑。我注意到ArrayList是一个实现List的类,List反过来扩展了集合

Collection
中,我们有一系列方法,其中一个可识别的方法是
containsAll()
。我查看了
ArrayList
的官方文档,但是可以看到ArrayList没有这样的方法。页面的页脚上写着“继承的方法”和
containsAll()

(从文档中)我不明白的是,
containsAll()
是否定义了,即使它在ArrayList类中有一个空的主体,还是根本没有定义?如果不是,这是否违反了Java的规则

还有其他人以同样的方式“失踪”吗

containsAll()
方法由
AbstractCollection
定义,AbstractCollection由
AbstractList
扩展,AbstractList又由
ArrayList
扩展。因此
ArrayList
继承了
containsAll()
实现

考虑以下代码:

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
boolean contains = list.containsAll(Arrays.asList("b", "c"));
List List=new ArrayList();
列表。添加(“a”);
列表。添加(“b”);
boolean contains=list.containsAll(Arrays.asList(“b”、“c”));

在这里,当调用
list.containsAll()
时,实际上执行
AbstractCollection
中声明的方法。

ArrayList扩展了AbstractList,它扩展了

在那里你可以找到它:

如果此集合包含指定集合中的所有元素,则返回true

此实现迭代指定的集合,依次检查迭代器返回的每个元素,以查看它是否包含在此集合中。如果所有元素都如此包含,则返回true,否则返回false

基本上,这里真正的答案是:注意javadoc for ArrayList的顶部,在那里可以找到继承树:

java.lang.Object
  java.util.AbstractCollection<E>
    java.util.AbstractList<E>
      java.util.ArrayList<E>
java.lang.Object
java.util.AbstractCollection
java.util.AbstractList
java.util.ArrayList
“继承”!=“失踪”!您真的认为该语言附带的已发布的官方JavaAPI会包含“某种违反Java规则的行为”吗?