用Java定义一个图形接口Shape,包含一个求面积的抽象方法。 定义圆形(Circle)和长方形(Rectangle)实现图形接口。 实例化圆形和长方形的对象,并输出面积(利用多态的思想)。
时间: 2024-12-08 19:21:39 浏览: 43
编写一个抽象类Shape
4星 · 用户满意度95%
在Java中,你可以按照以下步骤定义一个图形接口`Shape`,以及两个具体的实现类`Circle`和`Rectangle`:
首先,创建一个名为`Shape`的接口,其中包含一个抽象方法`getArea()`用于计算面积:
```java
public interface Shape {
double getArea();
}
```
然后,定义`Circle`类,它实现了`Shape`接口,并提供了一个计算圆面积的方法:
```java
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
```
接着,定义`Rectangle`类,同样实现`Shape`接口,并计算长方形面积:
```java
public class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
}
```
现在可以实例化这两个类并输出它们的面积,利用多态性:
```java
public class Main {
public static void main(String[] args) {
// 创建圆形和矩形对象
Shape circle = new Circle(5);
Shape rectangle = new Rectangle(4, 6);
// 输出各自面积
System.out.println("Circle area: " + circle.getArea());
System.out.println("Rectangle area: " + rectangle.getArea());
// 利用多态输出所有形状的总面积(假设有一个Shape数组)
Shape[] shapes = {circle, rectangle};
double totalArea = 0;
for (Shape shape : shapes) {
totalArea += shape.getArea();
}
System.out.println("Total area of all shapes: " + totalArea);
}
}
```
运行这个程序,会分别得到圆形和矩形的面积,以及所有形状的总面积。这就是多态的应用,通过引用`Shape`类型的变量,我们可以处理不同类型的`Shape`对象,而不需要关心其实现细节。
阅读全文