java j继承多态计算圆、长方形面积
时间: 2024-10-20 15:03:10 浏览: 34
在Java中,我们可以使用继承和多态来创建一个通用的"形状"类以及它的派生类,如"圆形"和"矩形",来分别计算它们各自的面积。这里是一个简化的示例:
首先,我们定义一个基础的"Shape"接口或者抽象类:
```java
public interface Shape {
double getArea();
}
```
接着,我们创建两个具体的形状类,"Circle"和"Rectangle",它们都实现了这个接口:
```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;
}
}
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;
}
}
```
现在,你可以创建一个List或Arraylist,包含各种Shape类型的对象,并通过多态性统一调用`getArea()`方法:
```java
List<Shape> shapes = new ArrayList<>();
shapes.add(new Circle(5));
shapes.add(new Rectangle(4, 6));
for (Shape shape : shapes) {
System.out.println("The area of the shape is: " + shape.getArea());
}
```
在这个例子中,虽然遍历的是相同的接口类型的集合,但实际执行的是每个具体形状类的`getArea`方法,体现了多态的优势。
阅读全文