手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

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

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

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

上一篇: [学习笔记]Thinking in Java (the 2nd edition) Study Note
下一篇: Soap 结 构 初 识

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!