Class Hierarchy with two children class : Class Inheritance « Class Interface « C# / C Sharp






Class Hierarchy with two children class

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();
         }
     }
 }

           
       








Related examples in the same category

1.Inheritance 3Inheritance 3
2.Four layers of class hierarchyFour layers of class hierarchy
3.An example of inheritance-related name hidingAn example of inheritance-related name hiding
4.Using base to overcome name hidingUsing base to overcome name hiding
5.Call a hidden methodCall a hidden method
6.A multilevel hierarchy 1A multilevel hierarchy 1
7.Demonstrate when constructors are calledDemonstrate when constructors are called
8.illustrates inheritanceillustrates inheritance
9.Private field and public Property in inheritancePrivate field and public Property in inheritance
10.Illustrates versioningIllustrates versioning
11.Class Hierarchy testClass Hierarchy test
12.A simple class hierarchyA simple class hierarchy
13.A base class reference can refer to a derived class objectA base class reference can refer to a derived class object
14.Pass a derived class reference to a base class referencePass a derived class reference to a base class reference
15.a multilevel hierarchya multilevel hierarchy
16.Build a derived class of Vehicle for trucksBuild a derived class of Vehicle for trucks