我是高中学生通过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类
中的实体类中获取它答案 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
方法获取名称。