(抽象类)编写一个Java程序,在程序中定义一个抽象类Shape,包含两个抽象方法,一个是计算面积 area() ,一个是显示面积 showArea(),再定义Shape类的两个子类 Rectangle 类和 Circle 类,设计一个程序,输出矩形和圆的面积;
时间: 2024-02-09 20:08:48 浏览: 80
实现如下:
```java
abstract class Shape {
abstract double area(); // 抽象方法:计算面积
abstract void showArea(); // 抽象方法:显示面积
}
class Rectangle extends Shape {
private double width; // 宽度
private double height; // 高度
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
double area() { // 实现计算面积方法
return width * height;
}
@Override
void showArea() { // 实现显示面积方法
System.out.println("矩形的面积为:" + area());
}
}
class Circle extends Shape {
private double radius; // 半径
public Circle(double radius) {
this.radius = radius;
}
@Override
double area() { // 实现计算面积方法
return Math.PI * radius * radius;
}
@Override
void showArea() { // 实现显示面积方法
System.out.println("圆的面积为:" + area());
}
}
public class Main {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(2, 5); // 创建一个矩形
Circle circle = new Circle(2); // 创建一个圆形
rectangle.showArea(); // 显示矩形的面积
circle.showArea(); // 显示圆形的面积
}
}
```
我们定义了一个抽象类 `Shape`,它包含两个抽象方法 `area()` 和 `showArea()`,分别用于计算形状的面积和显示形状的面积。然后我们定义了两个子类 `Rectangle` 和 `Circle`,它们继承了 `Shape` 类,并且实现了 `area()` 和 `showArea()` 方法。
在 `Rectangle` 类中,我们定义了两个私有变量 `width` 和 `height`,它们分别表示矩形的宽度和高度,然后我们在构造函数中初始化它们。我们实现了 `area()` 方法,用于计算矩形的面积,以及 `showArea()` 方法,用于显示矩形的面积。
在 `Circle` 类中,我们定义了一个私有变量 `radius`,它表示圆的半径,然后我们在构造函数中初始化它。我们实现了 `area()` 方法,用于计算圆的面积,以及 `showArea()` 方法,用于显示圆的面积。
最后,在 `Main` 类中,我们创建了一个矩形对象 `rectangle` 和一个圆形对象 `circle`,并且分别调用它们的 `showArea()` 方法,显示它们的面积。
阅读全文