什么是正确的修饰符

本文关键字:什么 | 更新日期: 2023-09-27 18:32:35

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

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

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

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

什么是正确的修饰符

由于您不希望实例化此类,因此请将其设置为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...
}

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