Java 请解释一下这些程序的流程
Q.鉴于: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);
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); }