您的位置:首页 > 其它

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

2015-04-16 17:08 267 查看
有时候我们可能需要编写只包含静态方法和静态域的类,例如某些工具类。

如java.lang.Math 或者 java.util.Arrays

这样的工具类不希望被实例化,因为实例对于它们没有任何意义。

如果不手写提供一个构造器,编译器会为这个类提供一个public的构造器,所以我们可以通过手写提供一个私有化的

构造器,从而来阻止这样的工具类来产生实例。

在这个私有的构造器里面,我们可以抛出一个AssertionException异常,从而进一步阻止它在这个类内被调用。

因为提供了私有化的构造器,而且没有提供其他的构造器,这样的类就不能被子类化了,因为子类总会显示或者隐式的调用父类构造器一次。

因为子类没有可以访问的父类构造器了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐