编写一个Java程序,在程序中定义一个抽象类Shape,包含两个抽象方法——area 和 showarea,再定义两个Shape类的子类,在子类中实现父类的抽象方法。
时间: 2024-05-16 11:18:15 浏览: 118
以下是一个实现上述要求的Java程序:
```java
// 定义抽象类Shape
abstract class Shape {
// 定义计算面积的抽象方法
public abstract double area();
// 定义显示面积的抽象方法
public abstract void showarea();
}
// 定义Shape类的子类:Rectangle
class Rectangle extends Shape {
private double length; // 长
private double width; // 宽
// 构造函数
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
// 实现父类的抽象方法:计算面积
public double area() {
return length * width;
}
// 实现父类的抽象方法:显示面积
public void showarea() {
System.out.println("矩形的面积为:" + area());
}
}
// 定义Shape类的子类:Circle
class Circle extends Shape {
private double radius; // 半径
// 构造函数
public Circle(double radius) {
this.radius = radius;
}
// 实现父类的抽象方法:计算面积
public double area() {
return Math.PI * radius * radius;
}
// 实现父类的抽象方法:显示面积
public void showarea() {
System.out.println("圆的面积为:" + area());
}
}
// 测试类
public class TestShape {
public static void main(String[] args) {
// 创建一个矩形对象
Rectangle rect = new Rectangle(5.0, 3.0);
rect.showarea(); // 调用显示面积的方法
// 创建一个圆对象
Circle circle = new Circle(2.0);
circle.showarea(); // 调用显示面积的方法
}
}
```
运行结果:
```
矩形的面积为:15.0
圆的面积为:12.566370614359172
```
阅读全文