C#类继承中构造函数的执行序列示例详解

2020-01-05 09:27:00王冬梅
 .

下面一个示例演示执行顺序:

基类:


public class MyBaseClass
 {
  public MyBaseClass()
  {
   Console.WriteLine("I am MyBaseClass()");
  } 
  public MyBaseClass(int i)
  {
   Console.WriteLine("I am MyBaseClass(int i)");
  }            
 }

派生类:


public MyDerivedClass()
  {
   Console.WriteLine("I am MyDerivedCalss()");
  }
  public MyDerivedClass(int i)
  {
   Console.WriteLine("I am MyDerivedClass(int i)");
  }
  public MyDerivedClass(int i,int j)
  {
   Console.WriteLine("I am MyDerivedClass(int i,int j)");
  }

接下来我们在Main函数中以不带参数的构造函数实例化MyDerivedClass:


 MyDerivedClass myObj = new MyDerivedClass();

运行程序,控制台输出如下:

C#,类继承,构造函数,执行序列

从结果可以看出,执行顺序先是基类构造的函数,接下来才是派生类的构造函数,即

1.执行System.Object.Object()构造函数(Object比较特殊,所有类的基类,一般可以不考虑,但是得知道它也是被执行了的)