1,在子类中调用父类的默认构造函数(无参)(会先调用父类的,然后是子类的)
public class MyDerivedClass{
public MyDerivedClass():base(){
//do something
}
}
在这里 :base()可以直接不写,因为默认会调用父类中的默认构造函数
2,调用有参数的构造函数
public class MyDerivedClass{
public MyDerivedClass(string name):base(name){
//do something
}
}
案例:
//父类
class BaseClass
{
private int x;
protected int z;
public BaseClass()
{
Console.WriteLine("base class 无参构造函数");
}
public BaseClass(int x)
{
this.x = x;
Console.WriteLine("x赋值完成");
}
}
//派生类
class DerivedClass:BaseClass
{
private int y;
public DerivedClass()//调用父类中无参的构造函数 当我们没有在子类的构造函数中显示声明调用父类的构造函数,默认会调用父类中的无参构造函数
{
Console.WriteLine("这个是DerivedClass 无参的构造函数");
}
public DerivedClass(int x, int y):base(x)
{
this.y = y;
base.z = 100;
Console.WriteLine("y赋值完成");
}
}