一个题目深入理解 java继承中构造方法的执行顺序
2017-08-29 09:43
501 查看
class X {
Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class 坑爹 extends X { //第一步 先执行父类的初始化,就是X的创建对象 然后x无参 所有先输出Y和X
Y y = new Y();
坑爹() {
super();
System.out.print("坑爹");
}
public static void main(String[] args) {
new 坑爹();
}
}
结果会输出 :yxy坑爹
第一步 先执行父类的初始化,就是X的创建对象 然后x无参 所有先输出Y和X
第二部 载执行子类坑爹类中的 创建y的对象,在执行输出 坑爹
注意:其中子类的无参方法中的super 没有执行,因为子类创建对象时,
已经执行过一次父类的无参构造方法,所以不再执行
Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class 坑爹 extends X { //第一步 先执行父类的初始化,就是X的创建对象 然后x无参 所有先输出Y和X
Y y = new Y();
坑爹() {
super();
System.out.print("坑爹");
}
public static void main(String[] args) {
new 坑爹();
}
}
结果会输出 :yxy坑爹
第一步 先执行父类的初始化,就是X的创建对象 然后x无参 所有先输出Y和X
第二部 载执行子类坑爹类中的 创建y的对象,在执行输出 坑爹
注意:其中子类的无参方法中的super 没有执行,因为子类创建对象时,
已经执行过一次父类的无参构造方法,所以不再执行
相关文章推荐
- Java 继承中构造方法的执行顺序问题
- 【深入理解JVM】:Java类继承关系中的初始化顺序
- 【深入理解JVM】:Java类继承关系中的初始化顺序
- 深入java (类)深入理解类的继承和初始化顺序
- 一个关于继承关系中静态快、成员变量、构造体代码的执行顺序的Java代码
- java 继承类 变量、静态变量、构造函数执行顺序
- java 继承类 变量、静态变量、构造函数执行顺序
- 【java】构造函数的继承执行顺序
- java继承执行顺序
- 深入理解HTTP协议的一个java的例子
- Java中的继承与静态static等的执行先后顺序的面试题
- Java中的继承与静态static等的执行先后顺序的面试题
- java 的继承,深入理解
- (转)MOMO的Unity3D研究院之深入理解Unity脚本的执行顺序(六十二)
- Java对象的构造过程---子类继承父类时(非)静态块及构造函数等的执行顺序
- 关于Java static 与继承的执行顺序
- java基础语法、继承与重载、super、static、finally、String与StringBuffer的深入理解
- 一个深入理解JAVA传统线程对象创建的例子
- 一个Java小程序,帮助理解Java继承中的初始化过程
- Java的块,静态块,构造函数,继承的执行先后顺序