Просто из любопытства я попытался переопределить абстрактный метод в базовом классе и использовать метод абстрактного применения. Как показано ниже:
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?
}
Любопытно узнать, почему компилятор С# позволяет писать "абстрактное переопределение". Разве это не избыточно? Должна быть ошибка времени компиляции, чтобы сделать что-то вроде этого. Служит ли это для некоторых случаев использования?
Спасибо за ваш интерес.