public class MyBase : IThing
public virtual string Thingy()
public class DerivedOne : MyBase
public new string Thingy()
public class DerivedTwo : MyBase
public override string Thingy()
public class DerivedThree : MyBase, IThing
public new string Thingy()
public static void Main()
IThing d1 = new DerivedOne();
IThing d2 = new DerivedTwo();
IThing d3 = new DerivedThree();
Console.WriteLine(b.Thingy());
Console.WriteLine(d1.Thingy());
Console.WriteLine(d2.Thingy());
Console.WriteLine(d3.Thingy());