我有第一个类,构造函数接受一个参数.
public class First {
First(Object o){
o.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
我有第二个课程,它扩展了第一个课程.
public class Second extends First {
Second(Object o) {
super(o);
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是保持Second类私有的构造函数,以便有可能实例化该类的唯一一个实例(例如,使用Singleton模式),但编译器不允许我这样做.
如果我不能在这里将构造函数设置为私有,我该怎么做才能允许创建该类的唯一一个实例?
你可以使Second私有的构造函数没有问题.你不能做的是使First私有的构造函数,除非你使用嵌套类.
举个例子,这很好用:
class First {
First(Object o) {
o.toString();
}
}
class Second extends First {
private final static Second instance = new Second(new Object());
private Second(Object o) {
super(o);
}
public static Second getInstance() {
return instance;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5436 次 |
| 最近记录: |