java利用泛型求面积和
时间: 2023-07-08 21:19:53 浏览: 90
假设我们有一个形状接口 Shape 和两个具体的形状类 Circle 和 Rectangle。我们可以定义一个泛型方法来计算不同形状的面积,代码如下:
```
public interface Shape {
double getArea();
}
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
}
public class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
public double getArea() {
return width * height;
}
}
public class AreaCalculator {
public static <T extends Shape> double calculateArea(T shape) {
return shape.getArea();
}
}
```
在这个示例中,我们定义了一个 Shape 接口,其中包括一个 getArea() 方法来计算形状的面积。然后,我们创建了两个具体的形状类 Circle 和 Rectangle,并分别实现了 Shape 接口中的 getArea() 方法。
最后,我们定义了一个泛型方法 calculateArea(),它接受一个泛型类型 T,该类型必须是 Shape 的子类。该方法调用传递给它的形状的 getArea() 方法来计算面积,并返回结果。
使用示例:
```
Circle circle = new Circle(5.0);
Rectangle rectangle = new Rectangle(10.0, 5.0);
double circleArea = AreaCalculator.calculateArea(circle);
double rectangleArea = AreaCalculator.calculateArea(rectangle);
System.out.println("Circle area: " + circleArea);
System.out.println("Rectangle area: " + rectangleArea);
```
输出:
```
Circle area: 78.53981633974483
Rectangle area: 50.0
```
在这个例子中,我们创建了一个 Circle 对象和一个 Rectangle 对象,并分别计算它们的面积。我们使用泛型方法 calculateArea() 来计算它们的面积,它会调用传递给它的形状对象的 getArea() 方法来计算面积。最后,我们输出计算出的面积。
阅读全文