首页 > 其他 > 详细

思考与问题

时间:2015-11-09 21:00:23      阅读:248      评论:0      收藏:0      [点我收藏+]

一、思索:为什么子类的构造方法运行之前,必须调用子类的构造方法?能不能反过开?为什么不能反过来?

构造函数的主要作用:在对象编程语言中,一般在定义了一个类型之后,为了能使用它,必须把这个类型具体化,也就是指定为一个具体的对象。而构造函数就是从定义出发,建立与定义相对应的对象。用计算机语言来说,光有定义是不能使用,必须通过构造函数来分配内存空间给可使用的对象。

继承父类, 就获得其成员变量,成员函数的使用。因此需要对这些成员变量做一些初始化工作。这个从逻辑上是应该如此的。父类初始化完成后,再接着初始化本身的成员变量。而编译器,为了防止你遗忘这个逻辑顺序。也许就添加了一个检查规则: 查看子类的构造函数中是否有父类的构造函数。

二、参看ExplorationJDKSource.java示例,此示例中定义了一个类A,它没有任何成员:class A { }

示例直接输出这个类所创建的对象

public static void main(String[] args)    {

System.out.println(new A());

}

得到的结果:A@1c5f743

请按照以下步骤进行技术探险:

使用javap c命令反汇编ExplorationJDKSource.class

 

反编译截图如下:

技术分享

 

 

思考与问题

原文:http://www.cnblogs.com/huangliping/p/4950928.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!