java类层次结构从2个级别获取字符串

时间:2015-12-12 01:59:48

标签: java

我是高中学生通过codeHS参加AP java课程,我遇到了困难,并且比我老师提前了2年,CodeHS是一个很好的网站,但它并没有这样做。解释一切,所以这就是我的问题。

public abstract class Solid
{
    private String myName;

    public Solid(String name)
    {
        myName = name;
    }

    public String getName()
    {
        return myName;
    }

    public abstract double volume();

    public abstract double surfaceArea();
}



public class Cube extends Solid
{

    public int side;

    public Cube(String name, int side)
    {
        super(name);
        this.side = side;
    }

    public double volume()
    {
        return Math.pow(side, 3);
    }

    public double surfaceArea()
    {
        return 6 * Math.pow(side, 2);
    }

}


public class RectangularPrism extends Cube
{
    public int length;
    public int width;
    public int height;

    public RectangularPrism(String name, int width, int height, int length)
    {
        super(name);
        this.width = width;
        this.height = height;
        this.length = length;
    }


    public double surfaceArea()
    {
        return 2 * (width * length + height * length+ height * width)
    }
}

我的问题在于RectangularPrism类,构造函数,它没有从超级类中获取名称,是多维数据集,我不知道如何存储名称来自将Solid类放入多维数据集类中,以便我可以从那里获取它?或者有没有办法可以从RectangularPrism类

中的实体类中获取它

1 个答案:

答案 0 :(得分:0)

RectangularPrism类从Cube类扩展,但Cube类没有默认构造函数,并且只有一个自定义构造函数。所以RectangularPrism类必须超出构造函数,代码如下:

public class RectangularPrism extends Cube {

    public int length;
    public int width;
    public int height;

    public RectangularPrism(String name, int width, int height, int length){
        super(name, 0);
        this.width = width;
        this.height = height;
        this.length = length;
    }


    public double surfaceArea()
    {
        return 2 * (width * length + height * length+ height * width);
    }

    @Override
    public double volume() {
        return (width * length * height);
    }
}

现在您可以使用getName方法获取名称。