Collection类有一个私有构造函数,为什么不把它作为抽象?

Nim*_*sky 2 java collections

public class Collections {
    // Suppresses default constructor, ensuring non-instantiability.
    private Collections() {
    }
...
Run Code Online (Sandbox Code Playgroud)

所有包含的方法都是静态的,如果我编写类似的东西,我会使Collections.class抽象,但仍然有一个私有构造函数 - 为什么类没有定义为抽象?

Ale*_*lov 8

一个类abstract暗示它可以(并且意图)被扩展,而不是Collections类的情况.这是我的猜测.


Lou*_*man 5

Collections班是不是意味着要延长或子类 -它的意思仅仅是静态的工具方法的供应商.如果它是抽象的,用户可以将其子类化,而JDK设计者不希望这样.

  • 至于那个 - 我的印象是"最终"的优势并没有与Josh Bloch和他合作.当他们最初建立集合框架时.坦率地说,我认为回想起来,大多数Collections类都应该是最终的 - 包括`HashSet`,`ArrayList`以及所有这些实现类. (2认同)