经过私有构造器强化不可实例化的能力(4)

一、有时须要编写仅仅包含 静态变量和静态方法的类:java

  • java.lang.Math 或 java.util.Arrays 基本类型值或数组类型 的相关方法组织起来
  • java.util.Collections 把实现特定接口的静态方法组织起来
  • 把 final 类型的类上的方法组织起来,而不是扩展 该类(final 没法扩展)
  • 上述工具类,不但愿被实例化,实例化没有任何意义

二、缺乏显式构造器,编译器会提供一个 公有的 无参的缺省构造器数组

三、用抽象类强制该类不可被实例化,行不通:工具

  • 缘由是:子类化后,子类能够被实例化!!!
  • 更加误导用户,该类是为了继承而设计的

四、为类建立私有构造器设计

  • 外部不可访问

五、私有构造器缺点:继承

  • 不可被子类化,由于全部子类都要显式或隐式调用父类构造器(私有则子类没法访问)
相关文章
相关标签/搜索