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)
  • 相关阅读:
    myEclipse Debug
    C# DataTable的詳細使用方法
    算法 《秦九韶算法java实践》
    【闲聊产品】之五:谁来背黑锅?
    ubuntu install mysql server method
    H264解码的一个測试程序
    Struts2自己定义拦截器实例—登陆权限验证
    【剑指offer】二叉树的镜像
    ubuntu12.04下搭建ftpserver
    C++Vector使用方法
  • 原文地址:https://www.cnblogs.com/wzyexf/p/362968.html
Copyright © 2011-2022 走看看