JAVA使用抽象方法和抽象类,编程实现图5.3所示的类层次图,并给出一个运行结果。
时间: 2024-02-25 17:55:26 浏览: 78
抽象类和抽象方法是Java语言中的一个重要特性,可以实现类似于C++中的纯虚函数和抽象类的概念。下面给出一个实现图5.3中的类层次结构的示例代码:
```java
// 抽象类Shape
abstract class Shape {
// 抽象方法,用于计算形状的面积
public abstract double getArea();
// 抽象方法,用于计算形状的周长
public abstract double getPerimeter();
}
// 圆形类Circle
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}
// 矩形类Rectangle
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
}
// 正方形类Square,是矩形的一种特殊情况
class Square extends Rectangle {
public Square(double side) {
super(side, side);
}
}
public class Main {
public static void main(String[] args) {
Shape[] shapes = { new Circle(2), new Rectangle(3, 4), new Square(2.5) };
for (Shape shape : shapes) {
System.out.println("Area: " + shape.getArea());
System.out.println("Perimeter: " + shape.getPerimeter());
System.out.println();
}
}
}
```
运行结果如下:
```
Area: 12.566370614359172
Perimeter: 12.566370614359172
Area: 12.0
Perimeter: 14.0
Area: 6.25
Perimeter: 10.0
```
该程序定义了一个抽象类Shape,包含两个抽象方法getArea和getPerimeter,分别用于计算形状的面积和周长。它还定义了一个圆形类Circle、一个矩形类Rectangle和一个正方形类Square,它们都继承自Shape类,并实现了Shape类中的两个抽象方法。在程序中创建了一个Shape数组,用于存储三个形状(一个圆形、一个矩形和一个正方形),并分别调用它们的getArea和getPerimeter方法计算面积和周长,最后输出结果。
阅读全文