用java编写程序,假设抽象类 Shape 定义了 area()方法,其子类 Circle、Rectangle 和 Triangle 都各自实现了 area()方法。定义一个类 PolymorphismDemo 实现计算圆形,矩形,和三角形 面积之和。
时间: 2024-02-28 10:52:17 浏览: 94
Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
好的,下面是Java代码实现:
```java
abstract class Shape {
public abstract double area();
}
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double area() {
return Math.PI * radius * radius;
}
}
class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double area() {
return length * width;
}
}
class Triangle extends Shape {
private double base;
private double height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
@Override
public double area() {
return 0.5 * base * height;
}
}
public class PolymorphismDemo {
public static void main(String[] args) {
Shape[] shapes = new Shape[3];
shapes[0] = new Circle(2.0);
shapes[1] = new Rectangle(3.0, 4.0);
shapes[2] = new Triangle(2.0, 3.0);
double totalArea = 0.0;
for (Shape shape : shapes) {
totalArea += shape.area();
}
System.out.println("Total area: " + totalArea);
}
}
```
在这个程序中,`Shape` 是一个抽象类,它定义了一个抽象方法 `area()`,表示计算该形状的面积。`Circle`、`Rectangle` 和 `Triangle` 都是 `Shape` 的子类,并且实现了 `area()` 方法。
在 `PolymorphismDemo` 类中,我们创建了一个 `Shape` 数组,并将 `Circle`、`Rectangle` 和 `Triangle` 的实例分别存储在数组中。然后,我们通过循环计算每个形状的面积,并将结果累加到 `totalArea` 变量中。最后,我们输出 `totalArea` 的值,表示三个形状的面积之和。
阅读全文