Virtual and virtual properties - C#