Почему вы думаете (или, почему это хорошо), Microsoft решила не разрешать:
public abstract class BaseClass
{
public abstract int Bar { get;}
}
public class ConcreteClass : BaseClass
{
public override int Bar
{
get { return 0; }
set {}
}
}
CS0546 "ConcreteClass.Bar.set": не может переопределяться, потому что "BaseClass.Bar" не имеет переопределяемого набора