定义一个抽象类shape,派生出圆,三角形,由圆派生圆锥体,求体积
public abstract class Shape {
// 二维度图形具备求面积
public abstract double getArea();
}
class Circle extends Shape {
// 圆半径
private double r;
private double area;
public Circle(double r) {
this.r = r;
calculateArea();
}
private void calculateArea() {
this.area = new BigDecimal(Math.PI * r)
.setScale(2, RoundingMode.HALF_UP).doubleValue();
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
calculateArea();
}
@Override
public double getArea() {
return this.area;
}
}
// 圆锥体
class Cone extends Circle {
// 高度
private double h;
// 体积
private double volume;
public Cone(double r, double h) {
super(r);
this.h = h;
calcVolume();
}
private void calcVolume() {
this.volume = new BigDecimal(this.getArea() * this.h)
.setScale(2, RoundingMode.HALF_UP).doubleValue();
}
public double getH() {
return h;
}
public void setH(double h) {
this.h = h;
calcVolume();
}
public double getVolume() {
return volume;
}
}