(1)定义一个形状接口IShip,接口中有计算面积和周长的两个抽象方法。(2)定义两个具体形状类(圆形,三角形),实现IShip接口。(3)主方法中声明一个IShip接口类的对象shape,然后创建两个实现类对象(具体形状),计算该形状的面积和周长
时间: 2024-02-05 08:05:15 浏览: 24
好的,我可以回答这个问题。以下是代码实现:
```
public interface IShip {
double getArea(); // 计算面积
double getPerimeter(); // 计算周长
}
public class Circle implements IShip {
private double r; // 圆的半径
public Circle(double r) {
this.r = r;
}
public double getArea() {
return Math.PI * r * r;
}
public double getPerimeter() {
return 2 * Math.PI * r;
}
}
public class Triangle implements IShip {
private double a, b, c; // 三角形的三边长
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double getArea() {
double p = (a + b + c) / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
public double getPerimeter() {
return a + b + c;
}
}
public static void main(String[] args) {
IShip shape1 = new Circle(2.0);
IShip shape2 = new Triangle(3.0, 4.0, 5.0);
System.out.println("Circle area: " + shape1.getArea() + " perimeter: " + shape1.getPerimeter());
System.out.println("Triangle area: " + shape2.getArea() + " perimeter: " + shape2.getPerimeter());
}
```
运行结果为:
```
Circle area: 12.566370614359172 perimeter: 12.566370614359172
Triangle area: 6.0 perimeter: 12.0
```