📜  C#base关键字

📅  最后修改于: 2020-10-31 03:20:35             🧑  作者: Mango

C#base关键字

在C#中,base关键字用于访问基类的字段,构造函数和方法。

您只能在实例方法,构造函数或实例属性访问器中使用base关键字。您不能在static方法中使用它。

C#base关键字:访问基类字段

我们可以使用base关键字来访问派生类中基类的字段。如果基类和派生类具有相同的字段,则很有用。如果派生类没有定义相同的字段,则无需使用base关键字。派生类可以直接访问基类字段。

让我们看一下C#中基本关键字的简单示例,该示例访问基类的字段。

using System;
public class Animal{
    public string color = "white";
}
public class Dog: Animal
{
    string color = "black";
    public void showColor()
    {
        Console.WriteLine(base.color);
        Console.WriteLine(color);
    }
    
}
public class TestBase
{
    public static void Main()
    {
        Dog d = new Dog();
        d.showColor();
    }
}

输出:

white
black

C#base关键字示例:调用基类方法

借助于base关键字,我们也可以调用基类方法。如果基类和派生类定义相同的方法,则很有用。换句话说,如果method被覆盖。如果派生类没有定义相同的方法,则无需使用base关键字。可以通过派生类方法直接调用基类方法。

让我们看一下基本关键字的简单示例,它调用了基类的方法。

using System;
public class Animal{
    public virtual void eat(){
        Console.WriteLine("eating...");
    }
}
public class Dog: Animal
{
    public override void eat()
    {
        base.eat();
        Console.WriteLine("eating bread...");
    }
    
}
public class TestBase
{
    public static void Main()
    {
        Dog d = new Dog();
        d.eat();
    }
}

输出:

eating...
eating bread...

C#继承:内部调用基类构造函数

每当继承基类时,都会在内部调用基类构造函数。让我们看一下调用基本构造函数的例子。

using System;
public class Animal{
    public Animal(){
        Console.WriteLine("animal...");
    }
}
public class Dog: Animal
{
    public Dog()
    {
        Console.WriteLine("dog...");
    }
    
}
public class TestOverriding
{
    public static void Main()
    {
        Dog d = new Dog();
        
    }
}

输出:

animal...
dog...