编写一个Java程序,在程序中定义一个抽象类Shape,包含两个抽象方法,一个是计算面积 area() ,一个是显示面积 showArea(),再定义Shape类的两个子类 Rectangle 类和 Circle 类,设计一个程序,输出矩形和圆的面积
时间: 2024-02-09 12:09:31 浏览: 164
下面是Java程序的实现:
```java
abstract class Shape {
abstract double area(); // 计算面积
abstract void showArea(); // 显示面积
}
class Rectangle extends Shape {
double width, height; // 矩形的宽和高
Rectangle(double w, double h) {
width = w;
height = h;
}
double area() {
return width * height;
}
void showArea() {
System.out.println("矩形的面积为:" + area());
}
}
class Circle extends Shape {
double radius; // 圆的半径
Circle(double r) {
radius = r;
}
double area() {
return Math.PI * radius * radius;
}
void showArea() {
System.out.println("圆的面积为:" + area());
}
}
public class MainClass {
public static void main(String[] args) {
Shape shape;
shape = new Rectangle(3, 4);
shape.showArea();
shape = new Circle(5);
shape.showArea();
}
}
```
上述程序中,定义了一个抽象类Shape,包含两个抽象方法:area()和showArea()。在Rectangle类和Circle类中分别实现了这两个方法,计算出矩形和圆的面积,并在showArea()方法中输出面积。在主类MainClass中创建一个Shape类型的对象shape,分别将其指向Rectangle类和Circle类的对象,并调用它们的showArea()方法输出面积。输出结果如下:
```
矩形的面积为:12.0
圆的面积为:78.53981633974483
```
由此可知,通过抽象类和抽象方法的使用,可以实现对子类的规范,同时也可以通过多态实现对不同子类的调用。
阅读全文