定义一个接口(Shape) ,包括求周长getPerimete 和求面积getArea抽家方法,然后在卖现类Circle关和Rectangle类中求长方形Rectangle)和圆(Cicle)的周长和面积。 完成Shape接口 Circle类,Rectangle类的设计 在测试类中走叉 个Shape类型 通过从控制台输入Girdle米对象的半径和Rectangle类对象长和竞,求出图形
时间: 2024-02-21 13:58:13 浏览: 64
设计一个Shape接口和它的两个实现类Square和Circle,要求如下
好的,这里是一个实现题目要求的示例代码:
```
interface Shape {
double getPerimeter();
double getArea();
}
class Circle implements Shape {
double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
}
class Rectangle implements Shape {
double length;
double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
public double getPerimeter() {
return 2 * (length + width);
}
public double getArea() {
return length * width;
}
}
public class ShapeTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入圆形的半径:");
double radius = scanner.nextDouble();
Shape circle = new Circle(radius);
System.out.println("圆形的周长为:" + circle.getPerimeter());
System.out.println("圆形的面积为:" + circle.getArea());
System.out.print("请输入长方形的长:");
double length = scanner.nextDouble();
System.out.print("请输入长方形的宽:");
double width = scanner.nextDouble();
Shape rectangle = new Rectangle(length, width);
System.out.println("长方形的周长为:" + rectangle.getPerimeter());
System.out.println("长方形的面积为:" + rectangle.getArea());
scanner.close();
}
}
```
在这个示例代码中,我们定义了一个 `Shape` 接口,其中包含了求周长和求面积的两个抽象方法。然后我们分别实现了 `Circle` 和 `Rectangle` 两个类,这两个类都实现了 `Shape` 接口。在测试类 `ShapeTest` 中,我们通过输入圆形半径和长方形长宽,来创建对应的对象,并调用他们的 `getPerimeter()` 和 `getArea()` 方法来计算周长和面积。
阅读全文