c#继承 base的使用

在 C# 中,base 关键字用于访问基类的成员:字段、方法、属性或构造函数。它用于在派生类中调用基类的成员,特别是当需要引用被派生类隐藏的成员或在派生类的构造函数中调用基类的构造函数时。以下是 base 关键字使用的几种场景。

1. 调用基类的方法

当派生类重写基类的方法时,可以使用 base 关键字调用基类中的方法实现。这在希望扩展而非完全替换基类实现的情境中非常有用。

public class BaseClass
{
    public virtual void Display()
    {
        Console.WriteLine("显示基类信息");
    }
}

public class DerivedClass : BaseClass
{
    public override void Display()
    {
        base.Display();  // 调用基类的 Display 方法
        Console.WriteLine("显示派生类信息");
    }
}

2. 访问被隐藏的成员

如果派生类隐藏了继承的成员(例如,通过使用 new 关键字),可以通过 base 关键字访问被隐藏的基类成员。

public class BaseClass
{
    public void DoSomething()
    {
        Console.WriteLine("基类的 DoSomething");
    }
}

public class DerivedClass : BaseClass
{
    public new void DoSomething()
    {
        // 必要时,可以调用被隐藏的 DoSomething 方法
        base.DoSomething();
        Console.WriteLine("派生类的 DoSomething");
    }
}

3. 调用基类的构造函数

在派生类的构造函数中,可以使用 base 关键字调用基类的构造函数。这是初始化派生类实例的一部分,在派生类的构造函数执行体之前执行。

public class BaseClass
{
    public int Value { get; }

    public BaseClass(int value)
    {
        this.Value = value;
    }
}

public class DerivedClass : BaseClass
{
    public DerivedClass(int value) : base(value) // 调用基类的构造函数
    {
    }
}

注意事项

  • 如果派生类的构造函数没有显式地使用 base 关键字调用基类的构造函数,则自动调用基类无参数的构造函数。如果基类没有无参数构造函数且未通过 base 显式调用其他构造函数,则会发生编译错误。
  • base 关键字在静态方法或静态构造函数中不能使用,因为它们不属于实例。
  • 在访问成员时,basethis 关键字不同,this 用于引用当前实例的成员,而 base 用于访问基类成员。

正确使用 base 关键字可以使派生类与基类之间的交互更加灵活和清晰,有助于实现代码的逻辑分层和重用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值