Java1. 定义一个图形接口Shape,包含一个求面积的抽象方法。 定义圆形(Circle)和长方形(Rectangle)实现图形接口。 实例化圆形和长方形的对象,并输出面积(利用多态的思想)。
时间: 2024-11-24 11:41:57 浏览: 10
编写一个抽象类Shape
4星 · 用户满意度95%
在Java中,我们可以创建一个多态的例子来演示这个过程。首先,我们定义一个`Shape`接口,它有一个抽象方法`getArea()`用于计算图形的面积:
```java
// 创建Shape接口
public interface Shape {
double getArea();
}
```
然后,我们为`Circle`和`Rectangle`这两个类分别实现`Shape`接口:
```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 length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double getArea() {
return length * width;
}
}
```
接着,我们可以创建`Circle`和`Rectangle`的实例,并通过它们的父接口`Shape`来获取并输出面积,这就是多态的应用:
```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类型的处理
circle = new Circle(7); // 这不会改变rectangle的引用类型
System.out.println("Updated circle area: " + circle.getArea());
}
}
```
在这个例子中,`circle.getArea()`和`rectangle.getArea()`会分别调用自己的实现,显示了多态性的灵活性。
阅读全文