C#如何覆盖这样?

Bac*_*tnz 1 c# overriding

下面的代码说a()不能覆盖a(),因为wee.a()没有标记为virtual,abstract或override.有没有办法解决这个问题?我需要在super方法中包含代码,但仍想覆盖它!

public abstract class wee
{
  public void a()
  {

  }
}
public class dee : wee
{
  public override void a()
  {
  }
  public void b()
  {
  }
}
Run Code Online (Sandbox Code Playgroud)

jru*_*ell 9

你需要标记wee.a 虚拟或抽象.

虚拟:

public abstract class wee
{
  public virtual void a()
  {

  }
}

public class dee : wee
{
  public override void a()
  {
  }
  public void b()
  {
  }
}
Run Code Online (Sandbox Code Playgroud)

抽象:

public abstract class wee
{
  public abstract void a();
}

public class dee : wee
{
  public override void a()
  {
  }
  public void b()
  {
  }
}
Run Code Online (Sandbox Code Playgroud)