2、指出以下程序的错误,并修改之。public class Base{ public static void main(String[] args){ Derive d = new Derive(); } private int i; public Base(int i) { this.i = i; } } class Derive extends Base{ private int j; }
时间: 2024-01-28 13:05:42 浏览: 122
错误程序 有关链表的 待修改
这个程序有两个错误:
1. Base类中没有默认的构造函数,因为已经定义了一个有参构造函数,所以需要显式地定义一个无参构造函数。
2. 在Derive类中没有调用父类的构造函数,因为Base类中只有一个有参构造函数,所以需要在Derive类的构造函数中调用父类的构造函数,并传递一个int参数。
下面是修改后的程序:
```
public class Base {
private int i;
public Base() {
// 无参构造函数
}
public Base(int i) {
this.i = i;
}
public static void main(String[] args) {
Derive d = new Derive(10);
}
}
class Derive extends Base {
private int j;
public Derive(int j) {
super(j);
this.j = j;
}
}
```
修改后的程序中,Base类有一个无参构造函数,Derive类的构造函数中调用了父类的构造函数,并传递了一个int参数。这样程序就能够正确地编译和执行了。
阅读全文