定义一个接口 Shape。接口中有四个抽象方法:求面积方法 getArea()、求周长方法 getPerimeter()、显示面积方法 showArea()及显示周长方法 showPerimeter()。定义 Circle 类和 Rectangle类,使它们都实现接口 Shape。在主类中使用 Circle 类和 Rectangle类,并分别调用上述4种方法
时间: 2024-03-12 19:44:46 浏览: 59
Java面向对象(高级)- 抽象类与抽象方法(或abstract关键字)
以下是符合要求的Java程序:
```
// 定义Shape接口
interface Shape {
double getArea(); // 求面积方法
double getPerimeter(); // 求周长方法
void showArea(); // 显示面积方法
void showPerimeter(); // 显示周长方法
}
// 定义Circle类,实现Shape接口
class Circle implements Shape {
private double radius; // 圆的半径
public Circle(double radius) {
this.radius = radius;
}
public double getArea() { // 实现求面积方法
return Math.PI * radius * radius;
}
public double getPerimeter() { // 实现求周长方法
return 2 * Math.PI * radius;
}
public void showArea() { // 实现显示面积方法
System.out.println("Circle area: " + getArea());
}
public void showPerimeter() { // 实现显示周长方法
System.out.println("Circle perimeter: " + getPerimeter());
}
}
// 定义Rectangle类,实现Shape接口
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 double getPerimeter() { // 实现求周长方法
return 2 * (width + height);
}
public void showArea() { // 实现显示面积方法
System.out.println("Rectangle area: " + getArea());
}
public void showPerimeter() { // 实现显示周长方法
System.out.println("Rectangle perimeter: " + getPerimeter());
}
}
// 测试程序
public class ShapeTest {
public static void main(String[] args) {
Circle circle = new Circle(5); // 创建圆对象
circle.showArea(); // 显示圆的面积
circle.showPerimeter(); // 显示圆的周长
Rectangle rectangle = new Rectangle(3, 4); // 创建矩形对象
rectangle.showArea(); // 显示矩形的面积
rectangle.showPerimeter(); // 显示矩形的周长
}
}
```
程序输出为:
```
Circle area: 78.53981633974483
Circle perimeter: 31.41592653589793
Rectangle area: 12.0
Rectangle perimeter: 14.0
```
说明程序能够正常运行。其中,Shape接口定义了求面积方法getArea()、求周长方法getPerimeter()、显示面积方法showArea()及显示周长方法showPerimeter(),Circle类和Rectangle类都实现了Shape接口,并实现了接口中的4个方法。在测试程序中,分别创建了Circle和Rectangle对象,并调用了它们的4个方法。
阅读全文