public abstract class A
{
public abstract void Process();
}
public abstract class B : A
{
public abstract override void Process();
}
public class C : B
{
public override void Process()
{
Console.WriteLine("abc");
}
}此代码引发编译错误:“B”未实现继承的抽象成员“A.Process()”。
有没有办法做到这一点?
发布于 2009-11-20 16:08:31
只需在类B中完全省略该方法即可。B无论如何都会从A继承它,而且由于B本身是抽象的,所以您不需要再次显式地实现它。
发布于 2009-11-20 16:10:39
适用于我的VS2008;没有错误,没有警告。但是,没有理由在B中有‘覆盖’。这段代码是等效的:
public abstract class A
{
public abstract void Process();
}
public abstract class B : A
{
}
public class C : B
{
public override void Process()
{
Console.WriteLine("abc");
}
}发布于 2009-11-20 16:17:55
孤单一人-
这没有任何意义。首先,这确实编译得很好。其次,您在A中声明的抽象方法被继承(仍然是抽象的)到B中。因此,您不需要在类B中声明Process()。
--马克
https://stackoverflow.com/questions/1768977
复制相似问题