我想强制任何类在继承特定基类时不能创建新实例,那么这个基类应该如何?
答案 0 :(得分:1)
以下代码在java中。只是给你一个例子
基类在构造函数上有一个例外。
public class BaseClass
{
public BaseClass()
{
throw new AssertionError();
}
}
扩展基类的子类,但如果你创建了它的对象,它将给你一个例外。
public class MainClass extends BaseClass
{
public MainClass()
{
}
public static void main(String[] args) {
MainClass c = new MainClass();
}
}
答案 1 :(得分:1)
你想密封你的基类。
public sealed class BaseClass
{
public BaseClass(){};
}
public class SubClass : BaseClass
{
public SubClass(){};
}
这将抛出编译器错误,因为您无法从密封的基础继承。
答案 2 :(得分:0)
你不能在基类中指定它,并且派生类是自己负责的,如果它想要提供从中派生的能力,那么你就无法做任何事情。
答案 3 :(得分:0)
你可以将基类声明为const - 就像其他类不能扩展它一样。
答案 4 :(得分:0)
你不能这样做。请说明你想要这样做的原因。