注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → IT资讯互联网 → 文章内容

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

作者:佚名 来源:不详 发布时间:2007-10-9 18:59:39

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.");

}

}

结果是:

to construct Parent. 

to construct Delegatee.

to construct Child.

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

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#是同层依赖优先于跨层依赖。

查看本文来源


  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved