这是一个C#项目。
我有几个从基类继承的类。大多数子类具有相同的行为,而其中一些表现不同。
我正在使用new
关键字。
public class Parent
{
public DataTable FetchScore()
{
// blahblah
}
}
public class ChildNormal : Parent
{
}
public class ChildOdd : Parent
{
public new DataTable FetchScore()
{
DataTable dt = base.FetchScore();
// blahblah
}
}
但构建说使用new
并不是一个好习惯。
我也不能使用virtual
和override
,因为我想要一个默认值。我不想多次复制相同的覆盖实现。
如何在C#中执行此操作?
答案 0 :(得分:1)
你需要声明基础virtual
(这意味着可以在必要时覆盖它)和override
它需要与原始行为不同的行为。未重写的派生类的行为与基类类似。
public class Parent()
{
public virtual DataTable FetchScore()
{
// blahblah
}
}
public class ChildNormal() : Parent
{
}
public class ChildOdd() : Parent
{
public override DataTable FetchScore()
{
DataTable dt = base.FetchScore();
// blahblah
}
}