文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>继承中构造函数调用顺序

继承中构造函数调用顺序

时间:2011-04-01  来源:hfliyi

先执行成员变量的初始化表达式  然后执行父类的构造函数,最后调用自己的构造函数:

View Code
 1  class Ref
2 {
3 public Ref(string s)
4 {
5 Console.WriteLine(s);
6 }
7 }
8 class BaseClass
9 {
10 public Ref my = new Ref("BaseClass初始化表达式");
11 public BaseClass()
12 {
13 Console.WriteLine("BaseClass的构造方法被调用");
14 }
15
16 }
17 class A : BaseClass
18 {
19 public Ref my = new Ref("A的初始化表达式");
20 public A()
21 {
22 Console.WriteLine("A的构造方法被调用");
23 }
24 }
25 class B : A
26 {
27 public Ref my = new Ref("B的初始化表达式");
28 public B()
29 {
30 Console.WriteLine("B的构造方法被调用");
31 }
32 }
33 class C : B
34 {
35 public Ref my = new Ref("C的初始化表达式");
36 public C()
37 {
38 Console.WriteLine("C的构造函数被调用!");
39 }
40 }

通过上面的例子,可以知道我们类的派生顺序是:BaseClass->A->B->C;按照刚刚所说的 先执行成员变量的初始化表达式  然后执行父类的构造函数,

那么我们的程序执行是,先执行C的成员变量初始化表达式,然后执行B的构造,最后调用C的构造。再构造B的时候,该原则任然被执行。

程序结果:

C的初始化表达式
B的初始化表达式
A的初始化表达式
BaseClass初始化表达式
BaseClass的构造方法被调用
A的构造方法被调用
B的构造方法被调用
C的构造函数被调用!

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载