错误:实际和正式参数列表的长度不同

时间:2013-09-28 21:27:27

标签: constructor

我收到以下错误: “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;
        } }

2 个答案:

答案 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构造函数。