是否有任何可行的解决方案在抽象类中有私有构造函数..请告知
public abstract class BaseClass
{
private String member;
private BaseClass(String member)
{
this.member = member;
}
... abstract methods...
}
是否有任何可行的解决方案在抽象类中有私有构造函数..请告知
public abstract class BaseClass
{
private String member;
private BaseClass(String member)
{
this.member = member;
}
... abstract methods...
}
抽象类可以有一个私有构造函数。但是那个类不能被另一个类扩展。而不是在抽象类中添加静态内部类并扩展该抽象类。
abstract class Base{
public abstract void set();
private Base(){
System.out.println("Private Constructor!");
}
static class Derived extends Base{
public void set(){
System.out.println("set() method implemented!");
}
}
public static void main(String[] args){
new Base.Derived().set();
}
}
这违背了抽象类的目的:
抽象类必须是子类才能使用。
如果一个方法是私有的,子类就看不到它。
∴它实际上是无法到达的。
所以不行。
编辑@yshavit 在这个逻辑中发现了一个漏洞,这是非常正确的 - 看看他的评论(这可能应该是问题的答案?)。