使用java抽象类写一个已知数据的计算长方形和圆形的程序
时间: 2024-10-10 09:09:20 浏览: 31
Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
在Java中,我们可以创建一个抽象类来定义通用的数据结构和计算方法,然后让具体的长方形和圆形类继承这个抽象类并提供各自的特有属性和方法。这里是一个简单的例子:
```java
// 创建一个名为Shape的抽象类
abstract class Shape {
// 定义抽象方法,表示所有形状都需要计算面积
abstract double calculateArea();
// 公共方法来获取形状的名称
public String getName() {
return getClass().getSimpleName();
}
}
// 长方形类,继承自Shape,并实现calculateArea方法
class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
double calculateArea() {
return length * width;
}
}
// 圆形类,也继承自Shape,并实现calculateArea方法
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double calculateArea() {
return Math.PI * Math.pow(radius, 2);
}
}
public class Main {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(5, 3);
Circle circle = new Circle(4);
System.out.println("Rectangle area: " + rectangle.calculateArea());
System.out.println("Circle area: " + circle.calculateArea());
Shape shape = rectangle; // 强制类型转换
System.out.println("The current shape is a " + shape.getName() + ", and its area is " + shape.calculateArea());
shape = circle;
System.out.println("Now the shape is a " + shape.getName() + ", and its area is " + shape.calculateArea());
}
}
```
在这个例子中,`Shape`是一个抽象类,它的`calculateArea()`方法是抽象的。`Rectangle`和`Circle`分别继承了`Shape`,并且实现了`calculateArea()`方法。在`main`函数中,我们创建了一个`Rectangle`和一个`Circle`实例,然后通过`Shape`类型的引用交替调用它们的面积计算方法,展示了多态性。
阅读全文