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 没有执行,因为子类创建对象时,
已经执行过一次父类的无参构造方法,所以不再执行