本文概述
- C#基本关键字:访问基类字段
- C#基本关键字示例:调用基类方法
- C#继承:内部调用基类构造函数
你只能在实例方法,构造函数或实例属性访问器中使用base关键字。你不能在static方法内使用它。
C#基本关键字:访问基类字段我们可以使用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关键字,我们也可以调用基类方法。如果基类和派生类定义相同的方法,则很有用。换句话说,如果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();
}
}
【C#基础base】输出:
animal...
dog...