C#中子类构造函数调用base()到底何时用

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:24:44
class SuperTest
{
private string id;
public SuperTest(string id)
{
this.id=id;
}
}
class baseTest:SuperTest
{
public baseTest(string id):base(id)
{
}
}
程序很简单,这个base(id)在这里能有什么作用啊?何时用呢?不用也没事啊,存在即是有道理,请前辈指点,越详细越好,请不要做类似“最先调用父类构造函数”的回答!最好是举个例子说明一下,或者从原理上说明一下!拜托了!
感谢各位给我的帮助,参考了上面各位的知道我是这么理解的,就是base(id)的作用是为父类中的变量id赋值,子类继承了父类中的方法如果用到了父类的成员变量,这里就的id,就要在子类中引用base(id),如果子类中继承的方法没用到父类中的变量,base(id)就可以不用了,对吗?

base(id)
表示伟id这个参数去调父类构造函数
即可以免去写父类构造函数的代码,只要写特殊的关于当前类的代码.

base 关键字用于从派生类中访问基类的成员:

1,调用基类上已被其他方法重写的方法。

2,指定创建派生类实例时应调用的基类构造函数。

3,基类访问只能在构造函数、实例方法或实例属性访问器中进行。

4,还有从静态方法中使用 base 关键字是错误的

using System;
public class Person
{
protected string ssn = "444-55-6666";
protected string name = "John L. Malgraine";

public virtual void GetInfo()
{
Console.WriteLine("Name: {0}", name);
Console.WriteLine("SSN: {0}", ssn);
}
}
class Employee : Person
{
public string id = "ABC567EFG";
public override void GetInfo()
{
// Calling the base class GetInfo method:
base.GetInfo();
Console.WriteLine("Employee ID: {0}", id);
}
}

class TestClass
{
static void Main(