using System; namespace RickyTest { public class Starter { public static void Main() { ZClass [] zArray={ new ZClass(), new YClass(), new XClass(), new WClass(), new YClass(), new ZClass() }; foreach(ZClass obj in zArray) { obj.MethodA(); } } } public class ZClass { public virtual void MethodA() { Console.WriteLine("ZClass.MethodA"); } } public class YClass: ZClass { public override void MethodA() { Console.WriteLine("YClass.MethodA"); } } public class XClass: YClass { public new virtual void MethodA() { Console.WriteLine("XClass.MethodA()"); } } public class WClass: XClass { public override void MethodA() { Console.WriteLine("WClass.MethodA"); } } }