Почему переобределяемый метод должен быть или виртуальным или абстрактным? - C#
Формулировка задачи:
Почему что-бы переопределить метод в классе наследнике, в классе родителе данный метод должен быть обязательно виртуальным или абстрактным? Почему нельзя было сделать это "по-умолчанию"? В этом есть какой-то смысл?
Решение задачи: «Почему переобределяемый метод должен быть или виртуальным или абстрактным?»
textual
Листинг программы
class one
{
public virtual void method()
{ Console.WriteLine("one.method"); }
}
class two : one
{
public void method()
{ Console.WriteLine("two.method"); }
}
class three : one
{
public override void method()
{ Console.WriteLine("three.method"); }
}
class Program
{
static void Main(string[] args)
{
one o = new one();
o.method();
two t = new two();
t.method();
three th = new three();
th.method();
}
}