Mega Code Archive

 
Categories / C# / Class Interface
 

Test abstract class

/* Learning C#  by Jesse Liberty Publisher: O'Reilly  ISBN: 0596003765 */  using System;  abstract 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      // notice: no implementation      abstract public void DrawWindow();      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 implementing the      // abstract method      public override void DrawWindow()      {          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)      {      }      // implement the abstract method      public override void DrawWindow()      {          Console.WriteLine("Drawing a button at {0}, {1}\n",              top, left);      }  }  public class TesterAbstractClass  {      static void Main()      {          Window[] winArray = new Window[3];          winArray[0] = new ListBox(1,2,"First List Box");          winArray[1] = new ListBox(3,4,"Second List Box");          winArray[2] = new Button(5,6);          for (int i = 0;i < 3; i++)          {              winArray[i].DrawWindow();          }      }  }