黑马程序员技术交流社区
标题: 子类继承父类的过程 [打印本页]
作者: 张森 时间: 2013-1-3 10:43
标题: 子类继承父类的过程
有谁能具体的讲解下下面的运行流程,谢谢。
class X {
Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
Y y = new Y();
Z() {
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
作者: 刘文超 时间: 2013-1-3 10:50
本帖最后由 刘文超 于 2013-1-3 11:15 编辑
lz你好,我先给你写一下执行过程,并在代码中标注了1、2、3、4一共四行代码,过会要提到:
首先代码执行main函数new Z(),准备执行Z的构造方法;
在执行之前必须先执行父类X的构造方法才行,也就X();
但是,在执行构造方法X()的方法体之前要先对默认的属性Y b进行初始化,执行语句1;打印:Y
之后执行X()的方法体:语句2;打印X
---父类构造方法执行完毕,要回到本类中去,即Z的构造中;
同理,在执行Z()方法体之前要先对Z的属性Y y初始化,执行语句3;打印Y
最后执行Z()的方法体,执行4;打印Z- class X {
- Y b = new Y(); //1
- X() {
- System.out.print("X"); //2
- }
- }
- class Y {
- Y() {
- System.out.print("Y");
- }
- }
- public class Z extends X {
- Y y = new Y(); //3
- Z() {
- System.out.print("Z"); //4
- }
- public static void main(String[] args) {
- new Z();
- }
- }
复制代码
作者: hanyahui 时间: 2013-1-3 10:57
子类先调用父类的构造方法,在调用自己的
作者: 张森 时间: 2013-1-3 22:23
刘文超 发表于 2013-1-3 10:50
lz你好,我先给你写一下执行过程,并在代码中标注了1、2、3、4一共四行代码,过会要提到:
首先代码执行mai ...
thks 一目了然
作者: 刘文超 时间: 2013-1-3 22:29
张森 发表于 2013-1-3 22:23
thks 一目了然
恩 我等着版主给技术分呢、这两天回复的比较多、得分不多、
可能他们也比较忙吧、放假了、、、
作者: ♂老男孩♀ 时间: 2014-7-13 14:08
每个类都有一个构造方法吗?隐式或者显式的构造{:3_62:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |