⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex-05-02

📁 Programming Csharp Source Code(代码) Programming Csharp Source Code
💻
字号:
//Example 05-02: Using virtual methods

using System;

public 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 private and thus invisible
   // to derived class methods. We'll examine this 
   // later in the chapter
   protected int top;
   protected int left;
    
}

// ListBox derives from Window
public class ListBox : Window
{
   // constructor adds a parameter
   public ListBox(
      int top, 
      int left, 
      string contents):
      base(top, left)  // call base constructor
   {
 
      listBoxContents = contents;
   }
    
   // a new 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
}

public class Button : Window
{
   public Button(
      int top,
      int left):
      base(top, left)
   {
   }

   // a new 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 Tester
{
   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();
      }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -