0

BoxからCubeを拡張したい。私のプログラムには3つの部分があり、最初に長方形のクラスを実行し、次にそれを使用してBoxクラスを拡張し、次にCubeを拡張します。キューブ部分で立ち往生しています。これは私の指示が言うことです:

評価手順a。立方体は、長さ、幅、高さがすべて同じ値を持つボックスです。b。インスタンス変数やメソッドを追加する必要はありませんが、長さ、幅、高さがすべて同じ値になるように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;
    }

}

そしてメインのキューブ:

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を正しく実行したかどうかを知る必要があります。私がそれを正しくしなかったならば、私がそれを直すのを手伝ってください。

4

3 に答える 3

5

立方体は、すべての辺が等しい箱です。したがって、ボックスの3つの次元すべてに同じ長さパラメータを渡します。

public class Cube extends Box{
    public Cube(int length)
    {
        super(length, length, length);
    }
}
于 2013-03-12T21:18:27.233 に答える
0

public class Box extends Cube {

于 2013-03-12T21:15:32.177 に答える
0

rgettmanにはすでに正しい解決策がありますが、それについて詳しく説明します。CubeはBoxから拡張されるため、すべての(非プライベート)メソッドとすべてのメンバーを継承します。技術的にはすべてのメンバーが含まれますが、「プライベート」メンバーは子によって表示または変更できません。実装された動作を変更する場合を除いて、子クラスのメソッドを再宣言する必要はありません。

クラスを拡張する場合は、「保護された」タイプがよく使用されます。これは、子が変数を可視性で継承できるためです。子クラスがメンバー変数を直接変更する必要があるかどうかによって異なります。

于 2013-03-12T22:15:00.873 に答える