C#如何重写这样的?

标签 c# overriding

下面的代码是说 a() 不能覆盖 a() 因为 wee.a() 没有标记为虚拟的、抽象的或覆盖的。有办法解决这个问题吗?我需要在 super 方法中包含代码,但仍想重写它!

public abstract class wee
{
  public void a()
  {

  }
}
public class dee : wee
{
  public override void a()
  {
  }
  public void b()
  {
  }
}

最佳答案

你需要标记wee.a virtual or abstract .

虚拟:

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

  }
}

public class dee : wee
{
  public override void a()
  {
  }
  public void b()
  {
  }
}

摘要:

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

public class dee : wee
{
  public override void a()
  {
  }
  public void b()
  {
  }
}

关于C#如何重写这样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6851169/

相关文章:

c# - 如何在多个 ASP.NET 页面上覆盖相同的函数(渲染函数)

c++ - 覆盖中的几个基本问​​题

html - 覆盖 CSS 移除属性

c# - EF 不更新最近添加到数据库的对象的主键

c# - 登录loginform并在form 2中看到

c# - 插入前检查重复项 (C#.net)

c# - 为什么我们需要 new 关键字,为什么默认行为是隐藏而不是覆盖?

Python重写类(非实例)特殊方法

c# - WCF 如何启用元数据?

c# - 我如何计算文件夹中的资源