c#再看构造函数

时间:2022-09-28 19:27:02

简介:写了个小例子,看看c#中的构造函数链的调用过程

1.建立简单console项目,其中Class2.cs继承自Class1.cs

目录代码如下图:

c#再看构造函数

c#再看构造函数

c#再看构造函数

c#再看构造函数


结果如下:

c#再看构造函数

2.对上面的项目做如下修改

Program不改动,把class1.cs中test方法的virtual去掉,class2中的override改成new,

c#再看构造函数

c#再看构造函数


结果如下:

c#再看构造函数

总结:

在继承链构建对象时,子类构造函数执行之前调用父类构造函数,父类继续向上调用,一直到object,关闭函数体顺序如下,关闭object构造函数体,关系下一级构造函数,最后关闭子类构造函数体,在父类构造中如果出现了调用方法的现象,则若父类中的方法用了virtual修饰,且子类中override了,则调用的是子类的方法,否则调用的是父类自己的方法,