使用Java抽象类知识写一个可以计算长方形和圆形周长面积的程序
时间: 2024-10-10 13:02:33 浏览: 43
在Java中,我们可以创建一个抽象类作为几何形状的基础,并让具体的形状(如长方形和圆形)继承这个抽象类。首先,我们定义一个名为`Shape`的抽象类,它包含一个通用的`getArea()`方法(用于计算面积)和一个`getPerimeter()`方法(用于计算周长)。然后,我们会为`Rectangle`(长方形)和`Circle`(圆形)类分别提供实现这两个方法的具体逻辑。
```java
// 抽象类Shape
abstract class Shape {
abstract double getArea();
abstract double getPerimeter();
// 共享的行为,比如打印形状名称
void printName() {
System.out.println(this.getClass().getSimpleName());
}
}
// 长方形Rectangle类
class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
double getArea() {
return length * width;
}
@Override
double getPerimeter() {
return 2 * (length + width);
}
}
// 圆形Circle类
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * Math.pow(radius, 2);
}
@Override
double getPerimeter() {
return 2 * Math.PI * radius;
}
}
public class Main {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(5, 3);
Circle circle = new Circle(4);
rectangle.printName(); // 输出 "Rectangle"
System.out.println("Rectangle area: " + rectangle.getArea());
System.out.println("Rectangle perimeter: " + rectangle.getPerimeter());
circle.printName(); // 输出 "Circle"
System.out.println("Circle area: " + circle.getArea());
System.out.println("Circle perimeter: " + circle.getPerimeter());
}
}
```
在这个例子中,我们创建了一个`Main`类来实例化并使用这两种形状。每个形状都有自己的计算方法,但是共享了`printName()`方法,这体现了多态的概念。
阅读全文