我有以下带有一些方法的类,我想将其用作另一个类的基类。
public class BaseClass
{
public string DoWork(string str)
{
// some codes...
}
// other methods...
}
我不希望这个类被实例化,但派生类仍应使用其基类方法的原始实现。
可能吗?我的修饰符应该是什么?
我有以下带有一些方法的类,我想将其用作另一个类的基类。
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
- 但它不能直接初始化,它必须继承自。