public static void Main()
Derived1 a = new Derived1();
Console.WriteLine("Derived1 as Derived1: "+ a.X());
Console.WriteLine("Derived1 as Base: " + b.X());
Console.WriteLine("Derived2 as Base: " + c.X());
public virtual string X() {
public class Derived1 : Base
public class Derived2 : Base
public override string X() {