/* * C# Programmers Pocket Consultant * Author: Gregory S. MacBeth * Email: gmacbeth@comporium.net * Create Date: June 27, 2003 * Last Modified Date: */ using System; namespace Client.Chapter_5___Building_Your_Own_Classes { public class MyMainClass3 { static void Main(string[] args) { //The function called is based //upon the type called by new. A MyA = new D(); B MyB = new C(); MyA.Display(); //Calls D Display MyB.Display(); //Calls C Display // followed by B's Display //via the base keyword } } class A { public virtual void Display() { Console.WriteLine("Class A's Display Method"); } } class B: A { public override void Display() { Console.WriteLine("Class B's Display Method"); } } class C: B { public override void Display() { Console.WriteLine("Class C's Display Method"); base.Display(); } } class D: C { public override void Display() { Console.WriteLine("Class D's Display Method"); } } }