什么是正确的修饰符?

时间:2013-09-23 10:43:22

标签: c#

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

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

    // other methods...
}

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

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

2 个答案:

答案 0 :(得分:7)

制作BaseClass abstract

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中定义自己的代码 - 但它不能直接初始化,必须继承。

答案 1 :(得分: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...
}
相关问题