gpt4 book ai didi

java - Collection&Queue&BlockingQueue接口(interface)中的add(E e)方法

转载 作者:行者123 更新时间:2023-11-30 06:10:22 29 4
gpt4 key购买 nike

问题一:

在阅读 JDK 源代码时,我发现该方法 boolean add(E e);在接口(interface)中定义 Collection<E> & Queue<E> & BlockingQueue<E> .

我无法理解这一点。以我的理解,如果一个超接口(interface)已经定义了一个方法,那么扩展这个超接口(interface)的子接口(interface)不需要再次定义这个方法。

那么为什么这个方法被定义了三次呢?

问题二:

我还注意到与 boolean add(E e); 不同的是已在接口(interface)中声明的方法 Queue<E>然后在界面重新认领BlockingQueue<E> , E poll();方法仅在接口(interface) Queue<E> 中声明并没有在接口(interface)中被回收 BlockingQueue<E> .

那么为什么他们会受到不同的对待呢?

最佳答案

Question 1: When reading JDK source codes I found boolean add(E e); defined in interface Collection&Queue&BlockingQueue .

I cannot understand this. In my understanding if a super interface has defined a method, then a sub interface extending this super interface need not to define this method again.

是的,您不需要重新定义它。我猜这很可能是因为您需要重复声明才能添加新的 JavaDoc 注释,即每个接口(interface)都有关于 add(E) 等操作的特定描述。

Question 2: also I noticed that unlike the boolean add(E e); method which has been claimed in interface Queue and then re-claimed in interface BlockingQueue, the E poll(); method has been only claimed in interface Queue and has not been re-claimed in interface BlockingQueue.

So why they are treated differently?

大概和上面一样。 poll(E) 对一般队列和阻塞队列的工作方式相同,因此不需要不同的文档。

关于java - Collection<E>&Queue<E>&BlockingQueue<E>接口(interface)中的add(E e)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35886837/

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