当声明一个子类对象时
先执行父类的构造函数
再执行子类的构造函数
构造函数执行顺序
父类的父类的构造 -> ... 父类构造 ->... ->子类构造
父类的无参构造函数很重要
子类实例化时 默认自动调用的 是父类的无参构造 所以如果父类无参构造被顶掉 会报错
父类没有无参构造,可以用 base 调用指定父类的构造
:base 和:this的区别
:this 在构造函数被调用代表先调用this 指定的自己的构造函数
: base 在构造函数被调用代表先调用指定父类的构造
class Father
{
public Father(int i)
{
}
}
class Son:Father
{
public Son (int i):base(i)
{
}
}