У меня есть абстрактный базовый класс:
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()
. Насколько я могу судить, он избыточен - я уверен, что его удаление будет иметь отрицательный эффект.
Есть ли какой-то прецедент, когда абстрактное переопределение на абстрактном языке делает что-то полезное? Если нет, то почему нет сообщения о компиляторе, сообщающем мне, что то, что я написал, ничего не делает?