长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计个程序,可以计算不同图形的面积和周长。java
时间: 2024-11-14 18:24:00 浏览: 24
为了使用抽象类设计一个可以计算不同几何图形(如长方形和圆形)的周长和面积的程序,首先我们需要创建一个抽象类`Shape`作为基础类,然后让`Rectangle`和`Circle`这两个具体的形状类继承这个抽象类。下面是简单的Java代码示例:
```java
// 抽象Shape类
abstract class Shape {
// 公共属性
protected double width; // 宽度
protected double height; // 高度 (对于矩形)
protected double radius; // 半径 (对于圆)
// 公共方法
public abstract double getPerimeter(); // 计算周长
public abstract double getArea(); // 计算面积
// 构造函数
public Shape(double w, double h) {
width = w;
height = h;
}
public Shape(double r) {
radius = r;
}
}
// 矩形类,继承自Shape
class Rectangle extends Shape {
// 实现抽象方法
@Override
public double getPerimeter() {
return 2 * (width + height);
}
@Override
public double getArea() {
return width * height;
}
}
// 圆形类,继承自Shape
class Circle extends Shape {
// 实现抽象方法
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
// 主函数
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(5, 10);
System.out.println("Rectangle perimeter: " + rectangle.getPerimeter());
System.out.println("Rectangle area: " + rectangle.getArea());
Circle circle = new Circle(7);
System.out.println("Circle perimeter: " + circle.getPerimeter());
System.out.println("Circle area: " + circle.getArea());
}
```
在这个例子中,`Shape`是抽象类,`Rectangle`和`Circle`是它的具体子类。每个子类都实现了`getPerimeter()`和`getArea()`这两个抽象方法,以便分别计算各自的周长和面积。
阅读全文