首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于继承与构造函数的一个有关问题

2012-03-23 
关于继承与构造函数的一个问题这是源代码,具体问题在最下面:C# code using System  public class A  {   

关于继承与构造函数的一个问题
这是源代码,具体问题在最下面:

C# code
 using System;  public class A  {       public A()      {           Console.WriteLine("A");      } }   public class B  {       public B()       {           Console.WriteLine("B");      } }   public class C : A  {       B newb = new B();}   class MainClass  {       public static void Main()      {           C newc = new C();          Console.ReadLine();      }   } 


这个C#程序的输出结果是:
B
A

问题是:请问Main函数中 “C newc = new C();” 是按照什么顺序执行的?


[解决办法]
C newc = new C();
先执行 B 的构造,输出B,然后执行父类A的构造,输出A
[解决办法]
类的成员变量初始化先与构造函数执行
先执行 B newb = new B()在执行构造函数 输出B A
[解决办法]
探讨
首先执行A的构造函数,再执行C的构造函数,C的构造函数调用B的构造函数。

输出
A
B

[解决办法]
探讨

类的成员变量初始化先与构造函数执行
先执行 B newb = new B()在执行构造函数 输出B A

热点排行