zoukankan      html  css  js  c++  java
  • C# 程序员参考 base

    base 关键字用于从派生类中访问基类的成员:

    • 调用基类上已被其他方法重写的方法。
    • 指定创建派生类实例时应调用的基类构造函数。

    基类访问只能在构造函数、实例方法或实例属性访问器中进行。

    从静态方法中使用 base 关键字是错误的。

    示例

    在本例中,基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法。通过使用 base 关键字,可以从派生类中调用基类上的 Getinfo 方法。

    // keywords_base.cs
    // Accessing base class members
    using System;
       public class Person 
       {
          protected string ssn = "444-55-6666";
          protected string name = "John L. Malgraine";
    
          public virtual void GetInfo() 
          {
             Console.WriteLine("Name: {0}", name);
             Console.WriteLine("SSN: {0}", ssn);
          }
       }
       class Employee: Person 
       {
          public string id = "ABC567EFG";
    
          public override void GetInfo() 
          {
             // Calling the base class GetInfo method:
             base.GetInfo();
             Console.WriteLine("Employee ID: {0}", id);
          }
       }
    
    class TestClass {
       public static void Main() 
       {
          Employee E = new Employee();
          E.GetInfo();
       }
    }

    输出

    Name: John L. Malgraine
    SSN: 444-55-6666
    Employee ID: ABC567EFG

    有关其他示例,请参见 newvirtualoverride

    示例

    本示例显示如何指定在创建派生类实例时调用的基类构造函数。

    // keywords_base2.cs
    using System;
    public class MyBase
    {
       int num;
    
       public MyBase() 
       {
          Console.WriteLine("in MyBase()");
       }
    
       public MyBase(int i )
       {
          num = i;
          Console.WriteLine("in MyBase(int i)");
       }
    
       public int GetNum()
       {
          return num;
       }
    }
    
    public class MyDerived: MyBase
    {
       // This constructor will call MyBase.MyBase()
       public MyDerived() : base()
       {
       }
    
        // This constructor will call MyBase.MyBase(int i)
       public MyDerived(int i) : base(i)
       {
       }
    
       public static void Main() 
       {
          MyDerived md = new MyDerived();
          MyDerived md1 = new MyDerived(1);
       }
    }

    输出

    in MyBase()
    in MyBase(int i)
  • 相关阅读:
    HDU 5313 bitset优化背包
    bzoj 2595 斯坦纳树
    COJ 1287 求匹配串在模式串中出现的次数
    HDU 5381 The sum of gcd
    POJ 1739
    HDU 3377 插头dp
    HDU 1693 二进制表示的简单插头dp
    HDU 5353
    URAL 1519 基础插头DP
    UVA 10294 等价类计数
  • 原文地址:https://www.cnblogs.com/chinatefl/p/132350.html
Copyright © 2011-2022 走看看