6

我有以下带有一些方法的类,我想将其用作另一个类的基类。

public class BaseClass 
{
    public string DoWork(string str)
    {
        // some codes...
    }

    // other methods...
}

我不希望这个类被实例化,但派生类仍应使用其基类方法的原始实现。

可能吗?我的修饰符应该是什么?

4

2 回答 2

6

既然你不希望这个类被实例化,那就让它成为一个abstract类。你仍然可以在类上实现。

片段,

public abstract class BaseClass 
{
    public virtual string DoWork(string str)
    {
        // can have implementation here
        // and classes that inherits can overide this method because of virtual.
    }

    // other methods...
}
于 2013-09-23T10:44:33.597 回答
6

BaseClass 抽象

public abstract class BaseClass 
{
    // Only available to BaseClass
    private string _myString;

    public string DoWork(string str)
    {
        // Available to everyone
        return _myString;
    }

    protected void DoWorkInternal() {
        // Only available to classes who inherit base class
    }
}

这样,您可以在其中定义自己的代码BaseClass- 但它不能直接初始化,它必须继承自。

于 2013-09-23T10:44:42.057 回答