base 关键字用于从派生类中访问基类的成员。使用它可以:

  • 调用基类上已被另一个方法覆盖(override)的方法。
  • 指定在创建派生类的实例时应该调用基类的构造函数。

基类访问只允许在构造函数、实例方法和实例属性访问器中进行。
在静态方法中使用 base 关键字会产生错误。
被访问的基类是类声明中指定的基类。例如,如果指定 class ClassP : ClassJ,则无论 ClassJ 的基类是什么,都可以从 ClassP 访问 ClassJ 的成员。


调用基类的方法

首先定义一个基类 RenWu,包括一个虚拟方法,获取人物的信息:

    public class RenWu
        {
        protected string BianHao = "123-45-6789";
        protected string XingMing = "大活人";

        public virtual void FF获取信息 ( )
            {
            Console . WriteLine ( $"姓名:{XingMing}" );
            Console . WriteLine ( $"编号:{BianHao}" );
            }
        }

定义一个派生类 GuKe,重写了基类的 FF获取信息,以获取顾客的信息:

    public class GuKe : RenWu
        {
        public string ID = "987-65-4321";

        public override void FF获取信息 ( )
            {
            base . FF获取信息 ( );
            Console . WriteLine ( $"顾客 ID:{ID}" );
            }
        }

执行下列语句:

        {
            GuKe Q = new ( );
            Q . FF获取信息 ( );
        }

获得如下信息:
姓名:大活人
编号:123-45-6789
顾客 ID:987-65-4321


调用基类的构造函数

首先定义基类,包括两个构造函数(无参数和一个参数 z):

    public class JiLei
        {
        int Num;

        public JiLei ( )
            {
            Console . WriteLine ( $"基类中没有数据" );
            }

        public JiLei ( int z )
            {
            Num = z;
            Console . WriteLine ( $"基类中有数据:{Num}" );
            }
        }

创建一个派生类调用基类的构造函数作为自己的构造函数:

    public class PSLei : JiLei
        {
        // 构造函数调用基类的无参数构造函数
        public PSLei ( ) : base ( ) { }
        // 构造函数调用基类的有参数构造函数
        public PSLei ( int z ) : base ( z ) { }
        }

下列代码:

            PSLei P = new ( );
            PSLei P1 = new ( 1 );

将产生:
基类中没有数据
基类中有数据:1


兔子码农
2 声望1 粉丝

一个酒晕子