《Effective Java》通过私有构造器强化不可实例化的能力

一些类是不希望其他类对它实例化的,比如java.util.Arrays、java.lnag.Math、java.util.Collections。我们发现这些类都会声明一个私有的构造方法,这样外界就无法通过默认无参的构造方法来创建这些类的对象,同时这些类也不能被继承。



我们知道抽象类也是不可以被实例化的,那么为什么不使用抽象类呢?
抽象类是可以有子类的,而且抽象类的出现可能会让人误解它的用途,被人理解为是故意用来被继承的。

总结:通过private修饰无参的构造器,可以防止其他地方实例化该类的对象,但是同样这个类不会再有子类了,因为子类对象的创建,首先就要先访问父类的构造方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值