Edit: It turns out I missed something obvious, but I\'m going to leave the question open in case someone else makes the same obvious mistake. Thanks to
It's possible on interfaces, but not on abstract/virtual properties - you may have these two mixed up.
This is perfectly legal. You don't need the override keyword (in fact it wouldn't compile) but there's nothing stopping you from doing this:
interface IField
{
bool IsValid { get; }
}
class Field : IField
{
public bool IsValid { get; protected set; }
}