第四条:通过私有构造器强化不可实例化的能力

来源:互联网 发布:淘宝购物车删除 编辑:程序博客网 时间:2024/04/29 01:13

有些时候我们需要编写只包含静态方法和静态域的类,如工具类,我们不希望被实例化,只要让这个类包含私有构造器,它就不能被实例化了

//Noninstantiable utility classpublic class UtilityClass{     //Suppress defalut constructor for noninstantiability     private UtilityClass(){            throw new AssertionError();     }}

显式的构造器是私有的,所以不可以在该类的外部访问它。

缺点就是这个类不能被子类化,所有的构造器都必须显式或隐式地调用超类(superclass)构造器,这种情况下,子类就没有可访问的超类构造器可调用了。

0 0