Shape- 形状接口
/**
* 来一个接口,形状
*/
interface Shape {
/**
* 求面积
* @return 面积
*/
double area();
/**
* 求面积
* @param scale 保留小数位数
* @return
*/
default double area(int scale){
BigDecimal bigDecimal = new BigDecimal(area());
return bigDecimal.setScale(scale, RoundingMode.HALF_DOWN).doubleValue();
}
}
各个形状
/**
* 长方形
*/
class OblongShape implements Shape {
private double height;
private double width;
public OblongShape(double height, double width) {
this.height = height;
this.width = width;
}
@Override
public double area() {
return width * height;
}
}
/**
* 正方形
*/
class SquareShape extends OblongShape {
public SquareShape(float width) {
super(width, width);
}
}
/**
* 圆形
*/
class CircleShape implements Shape {
private double r;
public CircleShape(double r) {
this.r = r;
}
@Override
public double area() {
return Math.pow(r,2) * Math.PI;
}
}
调用
public class Main {
public static void main(String[] args) {
System.out.println(new OblongShape(10, 20).area());
System.out.println(new CircleShape(10).area(2));
System.out.println(new SquareShape(10).area(2));
}
}