Mega Code Archive

 
Categories / C# / Class Interface
 

Class Hierarchy with two children class

/* Learning C#  by Jesse Liberty Publisher: O'Reilly  ISBN: 0596003765 */  using System;  class Window  {      // constructor takes two integers to      // fix location on the console      public Window(int top, int left)      {          this.top = top;          this.left = left;      }      // simulates drawing the window      public virtual void DrawWindow()      {          Console.WriteLine("Window: drawing Window at {0}, {1}",              top, left);      }      // these members are protected and thus visible      // to derived class methods. We'll examine this      // later in the chapter      protected int top;      protected int left;  }  // ListBox derives from Window  class ListBox : Window  {      // constructor adds a parameter      public ListBox(          int top,          int left,          string contents):          base(top, left)  // call base constructor      {          listBoxContents = contents;      }      // an overridden version (note keyword) because in the      // derived method we change the behavior      public override void DrawWindow()      {          base.DrawWindow();  // invoke the base method          Console.WriteLine ("Writing string to the listbox: {0}",              listBoxContents);      }      private string listBoxContents;  // new member variable  }  class Button : Window  {      public Button(          int top,          int left):          base(top, left)      {      }      // an overridden version (note keyword) because in the      // derived method we change the behavior      public override void DrawWindow()      {          Console.WriteLine("Drawing a button at {0}, {1}\n",              top, left);      }  }  public class TesterClassArray1  {      static void Main()      {          Window win = new Window(1,2);          ListBox lb = new ListBox(3,4,"Stand alone list box");          Button b = new Button(5,6);          win.DrawWindow();          lb.DrawWindow();          b.DrawWindow();          Window[] winArray = new Window[3];          winArray[0] = new Window(1,2);          winArray[1] = new ListBox(3,4,"List box in array");          winArray[2] = new Button(5,6);          for (int i = 0;i < 3; i++)          {              winArray[i].DrawWindow();          }      }  }