【发布时间】:2014-09-29 04:12:25
【问题描述】:
为什么类ArrayDeque定义为
public class ArrayDeque<E> extends AbstractCollection<E>
implements Deque<E>, Cloneable, Serializable
而不是像
public class ArrayDeque<E> extends AbstractQueue<E>
implements Deque<E>, Cloneable, Serializable
如果您看下图(其中有错误,ArrayDeque 与 Set 的关系完全错误),ArrayDeque 将从 AbstractQueue 继承是有道理的,因为它通过 Deque 接口间接实现了 Queue 接口。
(来源:academic.ru)
【问题讨论】:
-
你为什么想知道?你的问题是合法的,但这是一个内部决定,你不应该真正关心:)
-
查看
ArrayDeque、AbstractQueue和AbstractCollection的源代码并尝试找出这个谜团的答案? -
我猜这是因为 ArrayDeque 早于 AbstractQueue,但事实并非如此。 ArrayDeque 来自 Java 6,而 AbstractQueue 来自 Java 5。
标签: java collections arraydeque