我收到以下错误: “Square类中的构造函数Square不能应用于给定类型; 要求:双倍,双倍 发现:没有争论 原因:实际和正式的参数列表长度不同“
我找不到任何我错过双倍的地方,所以我很困惑为什么这不开心。任何人都可以指引我朝着正确的方向前进吗?
提前致谢!
class Square {
private double Height;
private double Width;
private double SurfaceArea;
Square(double sqHeight, double sqWidth) {
this.Height = sqHeight;
this.Width = sqWidth;
}
// Get square/cube height
double getHeight() {
return Height;
}
// Get square/cube width
double getWidth(){
return Width;
}
// Computer surface area
double computeSurfaceArea(){
SurfaceArea = Width * Height;
return SurfaceArea;
}
}
class Cube extends Square {
private double Height;
private double Width;
private double Depth;
private double SurfaceArea;
**// Error occurs here**
Cube(double cuHeight, double cuWidth, double cuDepth) {
this.Height = cuHeight;
this.Width = cuWidth;
this.Depth = cuDepth;
}
double getDepth() {
return Depth;
}
@Override
double computeSurfaceArea(){
SurfaceArea = (2 * Height * Width) +
(2 * Width * Depth) +
(2 * Depth * Height);
return SurfaceArea;
} }
答案 0 :(得分:4)
您正在使用三个参数调用Square构造函数。
当调用Cube构造函数时,它将隐式调用具有相同数量参数的基础构造函数,在您的情况下,它会尝试找到一个接受三个双参数的Square构造函数。
需要指定使用两个双参数调用基类:在您的情况下,高度和宽度。
Cube(double cuHeight, double cuWidth, double cuDepth) {
super(cuHeight, cuWidth);
this.Height = cuHeight;
this.Width = cuWidth;
this.Depth = cuDepth;
}
答案 1 :(得分:0)
需要在你的立方体构造函数中使用:
super(cuHeight, cuWidth);
调用Square构造函数。