从本例中大家可以看出继承和重载的使用,各人感觉简明易懂base关键字的说明(学习使用) _关键。在第二个例子中大家可以看出如何指定在创建派生类实例时调用的基类构造函数。

base
关键字用于从派生类中访问基类的成员:
  • 调用基类上已被其他方法重写的方法。
  • 指定创建派生类实例时应调用的基类构造函数。
基类访问只能在构造函数、实例方法或实例属性访问器中进行。
从静态方法中使用 base 关键字是错误的。

示例
        在本例中,基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法。通过使用 base 关键字,可以从派生类中调用基类上的 Getinfo 方法。
 1base关键字的说明(学习使用) _职场_02// keywords_base.cs
 2base关键字的说明(学习使用) _职场_02// Accessing base class members
 3base关键字的说明(学习使用) _职场_02using System;
 4base关键字的说明(学习使用) _职场_02   public class Person 
 5base关键字的说明(学习使用) _休闲_06   {
 6base关键字的说明(学习使用) _休闲_09      protected string ssn = "444-55-6666";
 7base关键字的说明(学习使用) _休闲_09      protected string name = "John L. Malgraine";
 8base关键字的说明(学习使用) _休闲_09
 9base关键字的说明(学习使用) _休闲_09      public virtual void GetInfo() 
10base关键字的说明(学习使用) _base_13      {
11base关键字的说明(学习使用) _休闲_09         Console.WriteLine("Name: {0}", name);
12base关键字的说明(学习使用) _休闲_09         Console.WriteLine("SSN: {0}", ssn);
13base关键字的说明(学习使用) _base_18      }

14base关键字的说明(学习使用) _休闲_19   }

15base关键字的说明(学习使用) _职场_02   class Employee: Person 
16base关键字的说明(学习使用) _职场_21   {
17base关键字的说明(学习使用) _休闲_09      public string id = "ABC567EFG";
18base关键字的说明(学习使用) _休闲_09
19base关键字的说明(学习使用) _休闲_09      public override void GetInfo() 
20base关键字的说明(学习使用) _关键_27      {
21base关键字的说明(学习使用) _休闲_09         // Calling the base class GetInfo method:
22base关键字的说明(学习使用) _休闲_09         base.GetInfo();
23base关键字的说明(学习使用) _休闲_09         Console.WriteLine("Employee ID: {0}", id);
24base关键字的说明(学习使用) _base_18      }

25base关键字的说明(学习使用) _休闲_19   }

26base关键字的说明(学习使用) _职场_02
27base关键字的说明(学习使用) _关键_36class TestClass {
28base关键字的说明(学习使用) _休闲_09   public static void Main() 
29base关键字的说明(学习使用) _休闲_40   {
30base关键字的说明(学习使用) _休闲_09      Employee E = new Employee();
31base关键字的说明(学习使用) _休闲_09      E.GetInfo();
32base关键字的说明(学习使用) _base_18   }

33base关键字的说明(学习使用) _休闲_19}
输出
Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG












示例
    本示例显示如何指定在创建派生类实例时调用的基类构造函数。
 1base关键字的说明(学习使用) _职场_02// keywords_base2.cs
 2base关键字的说明(学习使用) _职场_02using System;
 3base关键字的说明(学习使用) _职场_02public class MyBase
 4base关键字的说明(学习使用) _关键_50{
 5base关键字的说明(学习使用) _休闲_09   int num;
 6base关键字的说明(学习使用) _休闲_09
 7base关键字的说明(学习使用) _休闲_09   public MyBase() 
 8base关键字的说明(学习使用) _base_56   {
 9base关键字的说明(学习使用) _休闲_09      Console.WriteLine("in MyBase()");
10base关键字的说明(学习使用) _base_18   }

11base关键字的说明(学习使用) _休闲_09
12base关键字的说明(学习使用) _休闲_09   public MyBase(int i )
13base关键字的说明(学习使用) _职场_63   {
14base关键字的说明(学习使用) _休闲_09      num = i;
15base关键字的说明(学习使用) _休闲_09      Console.WriteLine("in MyBase(int i)");
16base关键字的说明(学习使用) _base_18   }

17base关键字的说明(学习使用) _休闲_09
18base关键字的说明(学习使用) _休闲_09   public int GetNum()
19base关键字的说明(学习使用) _职场_71   {
20base关键字的说明(学习使用) _休闲_09      return num;
21base关键字的说明(学习使用) _base_18   }

22base关键字的说明(学习使用) _休闲_19}

23base关键字的说明(学习使用) _职场_02
24base关键字的说明(学习使用) _职场_02public class MyDerived: MyBase
25base关键字的说明(学习使用) _base_79{
26base关键字的说明(学习使用) _休闲_09   // This constructor will call MyBase.MyBase()
27base关键字的说明(学习使用) _休闲_09   public MyDerived() : base()
28base关键字的说明(学习使用) _关键_84   {
29base关键字的说明(学习使用) _base_18   }

30base关键字的说明(学习使用) _休闲_09
31base关键字的说明(学习使用) _休闲_09    // This constructor will call MyBase.MyBase(int i)
32base关键字的说明(学习使用) _休闲_09   public MyDerived(int i) : base(i)
33base关键字的说明(学习使用) _学习_91   {
34base关键字的说明(学习使用) _base_18   }

35base关键字的说明(学习使用) _休闲_09
36base关键字的说明(学习使用) _休闲_09   public static void Main() 
37base关键字的说明(学习使用) _休闲_97   {
38base关键字的说明(学习使用) _休闲_09      MyDerived md = new MyDerived();
39base关键字的说明(学习使用) _休闲_09      MyDerived md1 = new MyDerived(1);
40base关键字的说明(学习使用) _base_18   }

41base关键字的说明(学习使用) _休闲_19}

输出
in MyBase()
in MyBase(int i)