Этот модификатор используется для изменения методов и свойств. Он позволяет создать новую реализацию для методов и свойств унаследованных от базового класса. Мы не сможет изменить методы объявленные как non-virtual или static. С помощью этого модификатора нельзя изменить уровень доступа. Давайте рассмотрим типичный пример.
using System; using System.Windows.Forms; using System.Drawing; class TestApp { public static void Main() { MyMethod m = new MyMethod(); Console.Write(m.Test()); } class BaseMethod { public virtual string Test() { return "Hello"; } } class MyMethod : BaseMethod { public override string Test() { return "New Hello"; } } }
Здесь мы переопредели метод Test, немного ранее мы так же переопределяли методы обработки сообщений.
protected override void OnMouseDown(MouseEventArgs e) { this.Location = new Point (0, 0); } protected override void OnMouseUp(MouseEventArgs e) { this.Left =200 ; this.Top = 200; }