我有以下代码,它不会编译。
public class P {
private int num;
P(int n) {
this.num = n;
}
}
public class Q extends P {
private int i;
public Q() {
i = 0;
}
}
修复第二个方法以便它可以编译。
答案 0 :(得分:1)
您需要在P
中添加默认构造函数以使其编译
P() {
this.num = 0; // some default value
}
答案 1 :(得分:1)
答案 2 :(得分:0)
在代码中,编译器在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;
}
}