天天看点

第3条:通过私有构造方法强化不可实例化的能力

企图通过将一个类做成抽象类来强制该类不可被实例化,这是行不通的。

例如:

public abstract class Child {

}
           
public class Boy extends Child {

}
           
Child c = new Boy();
           

 抽象类Child可以被子类化,也可以被实例化为Boy。而且,别人可能以为Child类就是为了继承而设计的。

public class Child {
	private Child() {
		
	}
}
           

上面就可以使得类不可实例化了,也就是不能new一个了。

但是,这个类,也不能子类化了,其他类无法extends这个类了。

继续阅读