企图通过将一个类做成抽象类来强制该类不可被实例化,这是行不通的。
例如:
public abstract class Child {
}
public class Boy extends Child {
}
Child c = new Boy();
抽象类Child可以被子类化,也可以被实例化为Boy。而且,别人可能以为Child类就是为了继承而设计的。
public class Child {
private Child() {
}
}
上面就可以使得类不可实例化了,也就是不能new一个了。
但是,这个类,也不能子类化了,其他类无法extends这个类了。