zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    洛谷 P1578 奶牛浴场 题解
    LOJ167 康托展开 题解
    三校联训 【NOIP模拟】寻找
    洛谷 P1809 过河问题 题解
    有关多边形面积的总结
    LOJ 103 字串查找 题解
    洛谷 P2384 最短路 题解
    POJ 2492 A Bug's Life 题解
    LOJ 10214 计算器 题解
    洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows 题解
  • 原文地址:https://www.cnblogs.com/wzyexf/p/362968.html
Copyright © 2011-2022 走看看