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
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; } }