так как это
public int MyInt{ get; set;}
эквивалентно
private int _myInt;
public int MyInt{ get{return _myInt;} set{_myInt = value;} }
при создании автоматического свойства virtual
public virtual int MyInt{ get; set;}
а затем переопределить это свойство в дочернем классе
public override int MyInt{ get{return someVar;} set{someVar = value;} }
У этого дочернего класса теперь есть неудобное и скрытое выделение _myInt?