如何防止继承的类实例

时间:2011-06-11 09:51:31

标签: c# inheritance

我想强制任何类在继承特定基类时不能创建新实例,那么这个基类应该如何?

5 个答案:

答案 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)

你不能这样做。请说明你想要这样做的原因。