一. 构造函数
1.主要有3类构造函数:实例构造函数(instance),私有构造函数(private),静态构造函数(static)
2..NET创建对象的过程:(1)分配内存空间,(2)将内存空间清0,(3)调用实例构造函数
3.在执行构造函数的第一行代码前,每个构造函数必须首先调用基类的一个构造函数
二.调用顺序
从基类开始构造对象。
{
public MyBaseClass()
{
Console.WriteLine("In MyBaseClass()");
}
public MyBaseClass(int i)
{
Console.WriteLine("In MyBaseClass(int i)");
}
}
public class MyDerivedClass : MyBaseClass
{
public MyDerivedClass()
{
Console.WriteLine("In MyDerivedClass()");
}
public MyDerivedClass(int i)
{
Console.WriteLine("In MyDerivedClass(int i)");
}
//public MyDerivedClass(int i, int j)
//{
// Console.WriteLine("In MyDerivedClass(int i,int j)");
//}
public MyDerivedClass(int i, int j)
: base(i)
{
Console.WriteLine("In MyDerivedClass(int i,int j):base(i)");
}
}
class Program
{
static void Main(string[] args)
{
//Event1
MyDerivedClass myObj1 = new MyDerivedClass();
Console.WriteLine();
//Event2
MyDerivedClass myObj2 = new MyDerivedClass(4);
Console.WriteLine();
//Event3
MyDerivedClass myObj3 = new MyDerivedClass(4,8);
Console.WriteLine();
Console.ReadKey();
}
}
程序输出:
In MyBaseClass()
In MyDerivedClass()
In MyBaseClass()
In MyDerivedClass(int i)
In MyBaseClass(int i)
In MyDerivedClass(int i,int j):base(i)
很明显,只有在用base显示调用父类的构造函数时,程序才不会默认的调用不带参数的构造函数。