我们需要经常使用构造函数,因为构造函数在类的对象声明的时候就可以完成对变量进行初始化。同时我们也使用派生类继承基类的一些字段和方法。
那么在派生类的构造函数的执行顺序是什么样的呢?
示例
class Program
{
static void Main(string[] args)
{
Son son=new Son();
}
}
class Father
{
public Father()
{
Console.WriteLine("这是基类的构造方法");
}
}
class Son:Father
{
public Son():base() //当构造函数无参时,base()可以不写!
{
Console.WriteLine("这是派生类的构造方法");
}
}
运行结果:
这是基类的构造方法
这是派生类的构造方法
所以执行顺序:先执行基类的构造方法,再执行派生类的构造方法。
练习
class Program
{
static void Main(string[] args)
{
Son son=new Son(1,2);
}
}
class Father
{
private int x;
public Father(int x)
{
this.x = x;
Console.WriteLine(this.x);
}
}
class Son:Father
{
private int y;
public Son(int x,int y):base(x)
{
this.y = y;
Console.WriteLine(this.y);
}
}
运行结果:
1
2
注意:**base()括号中的参数可以与派生类构造函数的参数数量不一样,两者没有关系,base()括号参数的个数对应基类构造函数参数的个数。**
欢迎评价和指正,谢谢。