C#类的构造函数可以指定为首先调用其他的(父类的或者同级的)构造函数,然后再执行自己的代码。
如果没有指定,子类的构造函数默认首先调用父类的无参构造函数。
例如
public B() //虽然没有指定,默认首先调用父类的无参构造函数
public B() : base(16) //B的无参构造函数。首先调用父类的带一个int参数的构造函数
public B() : this(“string”) //B的无参构造函数。首先调用同级的带一个字符串参数的构造函数
//控制台程序
//以下代码在VS2010下调试通过
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test1
{
class A //定义class A
{
public A()
{
Console.WriteLine(“我是A的无参构造函数”);
}
public A(int i)
{
Console.WriteLine(“我是A的int构造函数”);
}
public A(String s)
{
Console.WriteLine(“我是A的String构造函数”);
}
}
class B : A //class从class继承
{
public B() : base(16) //首先调用父类的构造函数,从参数分析,应该调用A(int i)
{
Console.WriteLine(“我是B的无参构造函数”);
}
public B(int i) :