Вы можете использовать либо override , либо new модификатор для свойства, чтобы переопределить его. Тем не менее, два свойства должны быть одного типа. Разница в том, что override
также вызывается, если вы вызываете свойство класса Base
, который на самом деле является классом Derived
, а new
используется, только если вы вызываете его для класса derived
. См. эту интересную статью Джона Скита, объясняющую разницу. Как говорит Джон, если вы напишите
Base b = new Derived();
b.SomeMethod();
и SomeMethod
были переопределены с использованием ключевого слова override
, будет вызван метод производного класса. Если вы используете ключевое слово new
, будет вызван метод SomeMethod
из базового класса.