声明一个shape接口,计算圆,矩形,三角形的面积和周长
时间: 2024-10-18 19:18:20 浏览: 51
声明一个名为"Shape"的接口可以像这样设计:
```java
public interface Shape {
double getArea(); // 计算图形面积的方法
double getPerimeter(); // 计算图形周长的方法
}
```
在这个接口中,我们定义了两个抽象方法`getArea()` 和 `getPerimeter()`,它们分别用于获取图形的面积和周长。接下来,我们可以为具体的形状如圆形、矩形和三角形创建各自的类,并实现这个接口:
```java
// 圆形类 Circle 实现 Shape 接口
class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
// 矩形类 Rectangle 实现 Shape 接口
class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
}
// 三角形类 Triangle 实现 Shape 接口
class Triangle implements Shape {
private double base;
private double height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
@Override
public double getArea() {
return 0.5 * base * height;
}
@Override
public double getPerimeter() {
// 对于一般的三角形,这里需要具体的边长信息,假设它是等腰三角形
return base + base + calculateSideLength();
}
private double calculateSideLength() { // 假设可以根据其他条件计算边长
// ... 算法省略,这里仅给出示例
return // 算法结果;
}
}
```
现在,每个实现了Shape接口的类都提供了其特定形状的面积和周长计算方法,通过接口统一了计算方式,体现了多态原则。
阅读全文