定义一个图形接口 Shape,包含一个求面积的抽象方法。+ 定义圆形(Circle) 和长方形(Rectangle)实现图形接口。+ 实例化圆形和长方形的对象,并输出面积(利用多态的思想)。+
时间: 2024-11-25 10:31:21 浏览: 26
Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
在面向对象编程中,我们可以定义一个名为 `Shape` 的抽象接口,它表示所有图形的基本特征,比如有一个计算面积的抽象方法。抽象方法是一种声明而未提供实现的方法,主要用于规定接口的行为。
```java
// 定义图形接口 Shape
public interface Shape {
double getArea();
}
```
接下来,我们分别创建两个实现了 `Shape` 接口的类:`Circle` 表示圆形,`Rectangle` 表示长方形,它们各自都有自己的计算面积的具体实现。
```java
// 圆形 Circle 类
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 类
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;
}
}
```
然后,我们可以创建 `Circle` 和 `Rectangle` 的实例,并通过它们的共同接口 `Shape` 调用 `getArea()` 方法,这就是多态的应用:
```java
public class Main {
public static void main(String[] args) {
// 实例化并获取圆的面积
Shape circle = new Circle(5);
System.out.println("Circle area: " + circle.getArea());
// 实例化并获取矩形的面积
Shape rectangle = new Rectangle(4, 6);
System.out.println("Rectangle area: " + rectangle.getArea());
}
}
```
在这个例子中,尽管我们传递的是 `Shape` 类型的引用,但实际上会根据具体的子类(`Circle` 或 `Rectangle`)执行相应的 `getArea()` 方法,体现了多态的灵活性。
阅读全文