Java 请解释一下这些程序的流程

Java 请解释一下这些程序的流程,java,inheritance,Java,Inheritance,Q.鉴于: class X { X() { System.out.print(1); } X(int x) { this(); System.out.print(2); } } public class Y extends X { Y() { super(6); System.out.print(3); } Y(int y) { this(); System.out.println(4); } public static void main(String[] a) { new Y(5);

Q.鉴于:

class X {
X() { 
System.out.print(1);
}
X(int x) {
this(); System.out.print(2);
}
}
public class Y extends X {
Y() {
super(6); 
System.out.print(3);
}
Y(int y) {
this(); System.out.println(4);
}
public static void main(String[] a) 
{ 
new Y(5);
}
}
结果(选项)

回答:
C

根据我的说法,首先我们在java中有一个名为构造函数的默认super 所以在我的程序中,它首先会调用defaultsuper并打印1 通过在我的子类中使用super,它调用了参数构造函数并打印了2 子类通常打印3,4


对吗?如果错误,请更正。

是的,它应该打印1234

new Y(5) 
称之为承包商

Y(int y) {

this(); System.out.println(4);

}
通过调用“this()”将调用Y的默认构造函数

这将调用X的“X(intx)”构造函数。 它调用这个(在X上),所以它调用X的默认构造函数

它打印“1”。 然后我们回去,打印2。 然后返回Y的默认构造函数并打印3。 最终,到Y的(int)构造函数,打印4


打印“1234”的一种非常困难的方法是:)

为什么不自己尝试一下,然后检查结果呢?
Y(int y) {

this(); System.out.println(4);

}
Y()  { super(6); System.out.print(3); }