Java求长方形和圆形的面积周长运用到接口和抽象类
时间: 2024-10-10 09:15:29 浏览: 34
在Java中,如果你需要设计一个程序来计算长方形和圆形的面积和周长,你可以利用接口(Interface)和抽象类(Abstract Class)这两种机制来实现多态性。
**接口**: 使用接口可以创建一个包含公共方法的规范,例如`ShapeArea`和`ShapePerimeter`。每个具体的形状如`Rectangle`和`Circle`都需要实现这个接口,并提供它们各自的面积和周长计算方法。这样做的好处是保持了代码的灵活性,比如你可以添加新的形状而无需修改现有的计算逻辑。
```java
interface Shape {
double getArea();
double getPerimeter();
}
class Rectangle implements Shape {
private double length;
private double width;
// 实现getArea() 和 getPerimeter()
}
class Circle implements Shape {
private double radius;
// 实现getArea() 和 getPerimeter() (使用π * radius^2 和 2 * π * radius)
}
```
**抽象类**: 如果你想要共享一些通用的方法和属性,可以使用抽象类。例如,创建一个`AbstractShape`类,其中包含面积和周长计算方法,然后让`Rectangle`和`Circle`作为它的子类。
```java
abstract class AbstractShape {
abstract double getArea();
abstract double getPerimeter();
protected double calculateCommonArea(double... dimensions) {
// 共享的计算逻辑
}
}
class Rectangle extends AbstractShape {
// 实现getArea() 和 getPerimeter() 的具体逻辑
}
class Circle extends AbstractShape {
private double radius;
// 实现getArea() 和 getPerimeter() (使用π * radius^2 和 2 * π * radius)
}
```
在使用这些接口或抽象类时,你可以根据传入的对象类型(如`Shape`、`Rectangle`或`Circle`实例)动态地调用相应的面积和周长方法,体现了多态性。
阅读全文