gpt4 book ai didi

java - 为什么 List 接口(interface)扩展 Collection 接口(interface)?

转载 作者:太空狗 更新时间:2023-10-29 22:36:20 27 4
gpt4 key购买 nike

Collection 接口(interface)有多个方法。 List 接口(interface)扩展了 Collection 接口(interface)。它声明与 Collection 接口(interface)相同的方法?为什么会这样?

例如

interface Collection extends Iterable
{
public abstract int size();
public abstract boolean isEmpty();
public abstract boolean contains(java.lang.Object);
public abstract java.util.Iterator<E> iterator();
public abstract java.lang.Object[] toArray();
public abstract <T extends java/lang/Object> T[] toArray(T[]);
public abstract boolean add(E);
public abstract boolean remove(java.lang.Object);
public abstract boolean containsAll(java.util.Collection<?>);
public abstract boolean addAll(java.util.Collection<? extends E>);
public abstract boolean removeAll(java.util.Collection<?>);
public abstract boolean retainAll(java.util.Collection<?>);
public abstract void clear();
public abstract boolean equals(java.lang.Object);
public abstract int hashCode();
}

List 接口(interface)中也有相同的方法:

public interface List extends Collection
{
public abstract int size();
public abstract boolean isEmpty();
public abstract boolean contains(java.lang.Object);
public abstract java.util.Iterator<E> iterator();
public abstract java.lang.Object[] toArray();
public abstract <T extends java/lang/Object> T[] toArray(T[]);
public abstract boolean add(E);
public abstract boolean remove(java.lang.Object);
public abstract boolean containsAll(java.util.Collection<?>);
public abstract boolean addAll(java.util.Collection<? extends E>);
public abstract boolean removeAll(java.util.Collection<?>);
public abstract boolean retainAll(java.util.Collection<?>);
public abstract void clear();
public abstract boolean equals(java.lang.Object);
public abstract int hashCode();
}

如果已经扩展了Collection接口(interface),是否需要在List中重新编写这些方法?

最佳答案

它们被重写以便可以记录下来,以指定 List 与 Collection 接口(interface)中指定的契约相比如何改进这些方法的契约。

例如,List 中的add() 方法被记录为指定将元素添加到列表的末尾。这不能在 Collection 中指定,因为 Collection 没有开始和结束。

关于java - 为什么 List 接口(interface)扩展 Collection 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18160948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com