C#如何像这样覆盖?
下面的代码表示a()不能将a()重写为wee。a()未标记为virtual、abstract或override。有办法解决这个问题吗?我需要在超级方法中包含代码,但仍然希望覆盖它C#如何像这样覆盖?,c#,overriding,C#,Overriding,下面的代码表示a()不能将a()重写为wee。a()未标记为virtual、abstract或override。有办法解决这个问题吗?我需要在超级方法中包含代码,但仍然希望覆盖它 public abstract class wee { public void a() { } } public class dee : wee { public override void a() { } public void b() { } } 你需要标记wee.a 虚拟:
public abstract class wee
{
public void a()
{
}
}
public class dee : wee
{
public override void a()
{
}
public void b()
{
}
}
你需要标记wee.a
虚拟:
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()
{
}
}
你需要标记wee.a
虚拟:
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()
{
}
}
将wee.a()
as标记为--它允许您提供一个基本实现,但如果需要,还提供了在子类中重写该行为的选项
// wee
public virtual void a() { // do stuff for base implementation }
// dee
public override void a() { // override behavior implemenation }
将wee.a()
as标记为--它允许您提供一个基本实现,但如果需要,还提供了在子类中重写该行为的选项
// wee
public virtual void a() { // do stuff for base implementation }
// dee
public override void a() { // override behavior implemenation }
它将不会重写该方法,如果不将基标记为这样,则无法执行此操作。如果您不想像其他人建议的那样修改base,您可以像下面这样隐藏base方法:
public class dee : wee
{
public new void a()
{
}
public void b()
{
}
}
它将不会重写该方法,如果不将基标记为这样,则无法执行此操作。如果您不想像其他人建议的那样修改base,您可以像下面这样隐藏base方法:
public class dee : wee
{
public new void a()
{
}
public void b()
{
}
}
标记为虚拟?有什么原因你不能这样做吗?有什么原因你不能在原始代码中添加虚拟代码吗?是的,看起来虚拟就是这样做的,我不知道虚拟存在着,呵呵。谢谢大家:D!,标记为虚拟?有什么原因你不能这样做吗?有什么原因你不能在原始代码中添加虚拟代码吗?是的,看起来虚拟就是这样做的,我不知道虚拟存在着,呵呵。谢谢大家:D!,