首先定义一个接口GetArea,它至少包含一个可以计算面积的成员方法。然后,编写实现该接口的两个类:正方形类和圆类。接着编写一个具有泛型特征的类,方法包括在控制台窗口中输出某种图形的面积,这个类的类型变量所对应的实际类型可以是正方形类或圆类,驱动类中 分别输出给定边长的正方形的面积和给定半径的圆的面积。
时间: 2024-02-21 17:56:58 浏览: 75
好的,这是一个简单的Java代码实现:
首先,定义一个GetArea接口,包含一个计算面积的方法:
```java
public interface GetArea {
double getArea();
}
```
接下来,实现该接口的两个类:正方形类和圆类。
正方形类:
```java
public class Square implements GetArea {
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double getArea() {
return side * side;
}
}
```
圆类:
```java
public class Circle implements GetArea {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
```
接着,编写一个具有泛型特征的类,方法包括在控制台窗口中输出某种图形的面积。这个类的类型变量所对应的实际类型可以是正方形类或圆类。
```java
public class Area<T extends GetArea> {
private T shape;
public Area(T shape) {
this.shape = shape;
}
public void printArea() {
System.out.println("Area: " + shape.getArea());
}
}
```
最后,驱动类中分别输出给定边长的正方形的面积和给定半径的圆的面积。
```java
public class Main {
public static void main(String[] args) {
Square square = new Square(5.0);
Area<Square> squareArea = new Area<>(square);
squareArea.printArea();
Circle circle = new Circle(3.0);
Area<Circle> circleArea = new Area<>(circle);
circleArea.printArea();
}
}
```
输出结果为:
```
Area: 25.0
Area: 28.274333882308138
```
阅读全文