我无法解决此错误。有人可以帮忙吗?我的提示和代码如下。
写一个封装矩形的超类。矩形具有两个属性,分别表示矩形的宽度和高度。它具有返回矩形的周长和面积的方法。此类有一个子类,封装了一个平行六面体或盒子。平行六面体的底部为矩形,另一属性为长度。它有两种方法可以计算并返回其面积和体积。您还需要包括一个客户端类来测试这两个类。
public class Rectangle1
{
protected double width;
protected double height;
public Rectangle1(double width, double height){
this.width = width;
this.height = height;
}
public double getWidth(){
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight(){
return height;
}
public void setHeight(double height){
this.height = height;
}
public double getArea(){
return width * height;
}
public double getPerimeter(){
return 2 * (width + height);
}
}
public class Box extends Rectangle1 {
protected double length;
public Box(double length){
this.length = length;
}
public double getLength(){
return length;
}
public void setLength(double length){
this.length = length;
}
public double getVolume(){
return width * height * length;
}
}
public class TestRectangle {
public static void main(String[] args) {
Rectangle1 rectangle = new Rectangle1(2,4);
Box box = new Box(5);
System.out.println("\nA rectangle " + rectangle.toString());
System.out.println("The area is " + rectangle.getArea());
System.out.println("The perimeter is " +rectangle.getPerimeter());
System.out.println("The volume is " + box.getVolume());
}
}
错误在
public Box(double length){
this.length = length;
}
Eclipse IDE中的错误消息如下:
隐式超级构造函数
Rectangle1()
未定义。必须显式调用另一个构造函数。当我尝试运行它时,它给了我:
线程“主”
java.lang.Error
中的异常:未解决的编译问题:隐式超级构造函数
Rectangle1()
未定义。必须显式调用另一个构造函数 at Box.<init>(Box.java:4)
at TestRectangle.main(TestRectangle.java:7)
有人可以建议我如何解决此错误吗?
最佳答案
您的基类Rectangle1
具有一个构造函数:
public Rectangle1(double width, double height) {
this.width = width;
this.height = height;
}
因为您编写了构造函数,所以默认的no aruments构造函数将不存在,因此
super()
将找不到正确的构造函数。您应该在super(0, 0)
构造函数中编写:Box
,它将与Rectangle1
构造函数匹配。