我该怎么办“Box entends Cube”

时间:2013-03-12 21:14:00

标签: java

我想从Box扩展一个Cube。我的程序有三个部分首先我做一个矩形类然后我用它来扩展一个Box类然后我扩展一个Cube。我被困在立方体部分。这就是我的指示所说的:

评估说明 一个。多维数据集是一个框,其中长度,宽度和高度都具有相同的值。 湾您不必添加任何其他实例变量或方法 将必须设置Cube的构造函数以确保长度,宽度和 高度都具有相同的值。

矩形:

    public class Rectangle
    {
        // instance variables 
        private int length;
        private int width;

        /**
         * Constructor for objects of class rectangle
         */
        public Rectangle(int l, int w)
        {
            // initialise instance variables
            length = l;
            width = w;
        }

        // return the height
        public int getLength()
        {
            return length;
        }
        public int getWidth()
        {
            return width;
        }

    }

盒:

public class Box extends Rectangle
{
    // instance variables 
    private int height;

    /**
     * Constructor for objects of class box
     */
    public Box(int l, int w, int h)
    {
        // call superclass
        super(l, w);
        // initialise instance variables
        height = h;
    }

    // return the height
    public int getHeight()
    {
        return height;
    }

}

主要是Cube:

class Cube extends Box{
    // instance variables 
    private int height;
        private int length;
    private int width;

    public Cube(int h,int w,int l){
        super(h,w,l);

    }

    public double getheight(){
        return height;

               }
        public double getlength() {
            return length;
        }

        public double getwidth() {
            return width;
        }
}

我需要知道我是否正确使用Cube。如果我没有做对,请帮我解决。

3 个答案:

答案 0 :(得分:5)

立方体是一个所有边都相等的盒子。因此,将相同的长度参数传递给框的所有3个维度。

public class Cube extends Box{
    public Cube(int length)
    {
        super(length, length, length);
    }
}

答案 1 :(得分:0)

public class Box extends Cube {

答案 2 :(得分:0)

rgettman已经有了正确的解决方案,但只是详细说明:Cube从Box扩展,因此它继承了所有(非私有)方法和所有成员。从技术上讲,它有所有成员,但“私人”成员将不会被孩子看到或修改。除非要更改其实现的行为,否则不需要重新声明子类中的方法。

如果要扩展类,则经常使用“protected”类型,因为子级将能够以可见性继承该变量。这取决于子类是否需要直接修改成员变量。