Просто из любопытства я попытался переопределить абстрактный метод в базовом классе и метод абстрактной реализации. Как показано ниже:
public abstract class FirstAbstract
{
public abstract void SomeMethod();
}
public abstract class SecondAbstract : FirstAbstract
{
public abstract override void SomeMethod();
//?? what sense does this make? no implementaion would anyway force the derived classes to implement abstract method?
}
Любопытно узнать, почему компилятор C # позволяет писать «абстрактное переопределение». Разве это не лишнее? Должна быть ошибка времени компиляции, чтобы сделать что-то вроде этого. Подходит ли это для какого-то варианта использования?
Спасибо за проявленный интерес.