virtual - ключевое слово, которое может
употребляться с методами и свойствами класса, чтобы обозначить что их
реализация может быть переопределена в производных классах с помощью
ключевого слова
override Методы не помеченные как
virtual не могут быть переопределены.
Например
using System;
class Cls_a
{
public virtual void SS() { Console.WriteLine("Cls_a.SS"); }
}
class Cls_b: Cls_a
{
public override void SS() {
base.SS();
Console.WriteLine("Cls_b.SS");
}
}
class Test
{
static void Main() {
Cls_b b = new Cls_b();
b.SS();
Cls_a a = b;
a.SS();
}
}
Вызов b.SS() выдаст следующее:
Cls_a.SS
Cls_b.SS