【问题标题】:Why use extra explicit 'implements' clause? [duplicate]为什么要使用额外明确的“实现”子句? [复制]
【发布时间】:2017-09-16 11:19:28
【问题描述】:

考虑java.util

包中ArrayListAbstractList类的定义
public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable

public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>

很明显,当AbstractList 实现ListArrayList 扩展AbstractList,然后隐式ArrayList 实现List

ArrayList 定义中显式子句implements List 的目的是什么?

【问题讨论】:

  • 就是这样,要显式

标签: java inheritance syntax interface


【解决方案1】:

使用源代码时,可以立即查看该类实现了哪些接口。

当然,也可以从父类的源代码中找出这一点,但是直接声明可以省去查看那里(或查看 JavaDoc)的需要。当继承的接口在层次结构中非常高并且可能需要审查多个父类才能找到它时,当父类的源代码不可用或所讨论的接口是重要部分时,这可能更重要合同的规定,即使在父类不再支持它之后也必须保持实现。

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    相关资源
    最近更新 更多