我有以下代码,它不会编译。
public class P {
private int num;
P(int n) {
this.num = n;
}
}
public class Q extends P {
private int i;
public Q() {
i = 0;
}
}
修复第二种方法,使其可以编译。
我有以下代码,它不会编译。
public class P {
private int num;
P(int n) {
this.num = n;
}
}
public class Q extends P {
private int i;
public Q() {
i = 0;
}
}
修复第二种方法,使其可以编译。
您需要添加默认构造函数P
以使其编译
P() {
this.num = 0; // some default value
}
在代码中编译器在 Q 类中写了 super() 关键字,时间控制将转到 P 类并调用构造函数,但是 P 类有一个参数构造函数。所以你可以添加带有任意数字的 super() 关键字,因为P 类构造函数有一个 int 类型的参数。
class P {
private int num;
P(int n) {
this.num = n;
}
}
public class Q extends P {
private int i;
public Q() {
super(20);
i = 0;
}
}