如果希望派生类使用一个指定的基类构造函数而不是无参构造函数,必须在构造函数初始化语句中指定它。
有两种形式的够着函数初始化语句
●第一种形式使用关键字base并指明使用哪一个基类构造函数。
●第二种形式使用关键字this并指明应该使用当前类的那个构造函数。
示例:
class MyBaseClass
{
public MyBaseClass()
{
Console.WriteLine("父类无参");
}
public MyBaseClass(string name)
{
Console.WriteLine("父类有参" + name);
}
}
class MyDerivdedClass : MyBaseClass
{
public MyDerivdedClass()
{
Console.WriteLine("子类无参");
}
public MyDerivdedClass(string name)
{
Console.WriteLine("子类有参" + name);
}
}
class MyClass
{
readonly int firstVar;
readonly double secondVar;
public string UserName;
public int UserIdNumber;
private MyClass()
{
firstVar = 20;
secondVar = 30.5;
}
public MyClass(string firstName)
: this()
{
UserName = firstName;
UserIdNumber = -1;
}
public MyClass(int idNumber)
: this()
{
UserName = "Anonymous";
UserIdNumber = idNumber;
}
}
class Program
{
static void Main(string[] args)
{
MyClass myClass = new MyClass("张三");
MyDerivdedClass myDerived = new MyDerivdedClass("李四");
Console.ReadLine();
}
}