JAVA 与C#构造函数执行顺序的不同之处.

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

JAVA: 先执行父类的构造函数,然后是引用对象的构造函数(必须有new声明实际类型),然后是自己的构造函数。

public class Test

{

public static void main(String[] args)

{

Child child = new Child();

}

}

class Parent

{

Parent()

{

System.out.println("to construct Parent.");

}

}

class Child extends Parent

{

Child()

{

System.out.println("to construct Child.");

}

Delegatee delegatee = new Delegatee();

}

class Delegatee

{

Delegatee()

{

System.out.println("to construct Delegatee.");

}

}

结果是

而C#的构造函数执行顺序是:先引用对象,在父类,再子类.to construct Parent.

to construct Delegatee.

to construct Child.

using System;

namespace ConsoleApplication1

{

public class Test

{

public static void Main(String[] args)

{

Child child = new Child();

}

}

class Parent

{

public Parent()

{

Console.WriteLine("to construct parent");

}

}

class Child : Parent

{

public Child()

{

Console.WriteLine("to construct Child.");

}

Delegatee delegatee = new Delegatee();

}

class Delegatee

{

public Delegatee()

{

Console.WriteLine("to construct Delegatee.");

}

}

}

结果是

to construct Delegatee.

to construct Child.

to construct Parent.

总结:

被依赖的先构造,依赖于人的后构造。JAVA 是跨层依赖优先于同层依

赖构造,而C#是同层依赖优先于跨层依赖.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航