在 C# 中,base 关键字用于访问基类的字段、构造函数和方法。
您只能在实例方法、构造函数或实例属性访问器中使用 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(); } }
输出:
白色的 黑色的
借助 base 关键字,我们也可以调用基类方法。如果基类和派生类定义相同的方法,这很有用。换句话说,如果方法被覆盖。如果派生类没有定义相同的方法,则不需要使用 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(); } }
输出:
吃... 吃面包...
每当您继承基类时,都会在内部调用基类构造函数。让我们看一下调用基本构造函数的例子。
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(); } }
输出:
动物... 狗...