我有一个抽象基类:为什么我可以抽象重写一个抽象方法?
abstract class Foo
{
virtual void DoSomeStuff()
{
//Do Some Stuff
}
abstract void DoSomeCrazyStuff();
}
,并从该派生出的另一抽象类:
abstract class Bar : Foo
{
abstract override void DoSomeStuff();
abstract override void DoSomeCrazyStuff();
}
我明白你为什么会想抽象覆盖DoSomeStuff()
- 这将需要一个新的实现进一步派生类。但我无法弄清楚为什么你想抽象覆盖DoSomeCrazyStuff()
。据我所知,这是多余的 - 我很确定删除它将不会产生负面影响。
是否存在一些抽象重写对抽象操作有用的用例?如果没有,为什么没有编译器警告,告诉我我写的内容什么都不做?
这个链接可以帮助 - “因为规范是这么说的” http://msdn.microsoft.com/en-us/library/ms173150%28VS.80%29.aspx – terrybozzio
此落在范畴 –
看起来像是Roslyn的一个很好的功能请求。 –