题目 4-2:设计一个 Shape 接口和它的两个实现类Circle 和Souare,要求如下:4 (1)Shape接口中有一个抽象方法area(),有一个返回值。 (2)类 Circle和Squar
时间: 2024-12-02 12:17:01 浏览: 22
题目 4-2 要求设计一个名为 `Shape` 的接口,以及两个实现了这个接口的具体类 `Circle` 和 `Square`。以下是它们的设计描述:
**Shape接口:**
```java
public interface Shape {
// 抽象方法,计算并返回形状的面积
double area();
}
```
**Circle 类:**
```java
import java.util.Scanner;
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double area() {
return Math.PI * Math.pow(radius, 2);
}
// 可选:添加用于获取用户输入半径的方法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入圆的半径:");
double inputRadius = scanner.nextDouble();
Circle circle = new Circle(inputRadius);
System.out.printf("圆的面积为: %.2f\n", circle.area());
}
}
```
**Square 类:**
```java
public class Square implements Shape {
private double sideLength;
public Square(double sideLength) {
this.sideLength = sideLength;
}
@Override
public double area() {
return sideLength * sideLength;
}
// 可选:添加用于获取用户输入边长的方法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入正方形的边长:");
double inputSideLength = scanner.nextDouble();
Square square = new Square(inputSideLength);
System.out.printf("正方形的面积为: %.2f\n", square.area());
}
}
```
在这个例子中,`Circle` 和 `Square` 都实现了 `Shape` 接口的 `area()` 方法,分别计算圆形和正方形的面积。当需要操作任何形状时,可以使用 `Shape` 类型的引用指向这两个类的对象,从而体现多态。
阅读全文