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);
}
}
结果(选项)
A. 13 B. 134 C. 1234 D. 2134 E. 2143
答案:C
根据我的说法,首先我们在java中使用默认超级,称为构造函数 所以在我的程序中,它首先调用默认超级并打印1 通过在我的子类中使用super,它调用了争论的构造函数AND print 2 子类通常打印3,4。
这是对的吗?如果有问题请纠正。
答案 0 :(得分:0)
是的,它应该打印1234。
new Y(5)
调用此约束器
Y(int y) {
this(); System.out.println(4);
}
通过调用“this()”将调用Y的默认约束器。
Y() { super(6); System.out.print(3); }
这将调用X的“X(int x)”构造函数。 调用它(在X上),因此它调用X的默认构造函数。
打印“1”。 然后我们回去,打印2。 然后返回Y的默认构造函数并打印3。 最后,到Y的(int)构造函数,打印4。
打印“1234”非常困难的方法:)