Какая польза от «абстрактного переопределения» в C #?

Просто из любопытства я попытался переопределить абстрактный метод в базовом классе и метод абстрактной реализации. Как показано ниже:

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 # позволяет писать «абстрактное переопределение». Разве это не лишнее? Должна быть ошибка времени компиляции, чтобы сделать что-то вроде этого. Подходит ли это для какого-то варианта использования?

Спасибо за проявленный интерес.

47
задан Manish Basantani 18 January 2012 в 05:03
поделиться