Java定义抽象类Shape,包含两个抽象方法

题目要求:定义抽象类Shape,包含getArea( )和getPerimeter( )两个抽象方法
(1)定义Rectangle类表示矩形,继承Shape类,实现其中的getPerimeter()方法和getArea()方法。
(2)定义Square类表示正方形,继承Shape类,实现其中的getPerimeter()方法和getArea()方法。
(3)编写测试程序:随机生成10个边长小于100的Rectangle和Square的随机对象,分别输出所有图形的面积之和与周长之和。

import java.util.Random;

// Shape 抽象类  
public abstract class Shape {  
    public abstract double getArea();  
    public abstract double getPerimeter();  
}  
  
// Rectangle 类表示矩形  
public 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 类表示正方形  
public class Square extends Shape {  
    private double sideLength;  
  
    public Square(double sideLength) {  
        this.sideLength = sideLength;  
    }  
  
    @Override  
    public double getArea() {  
        return sideLength * sideLength;  
    }  
  
    @Override  
    public double getPerimeter() {  
        return 4 * sideLength;  
    }  
}  
  
// 测试程序  
public class Main {  
    public static void main(String[] args) {  
        // 随机生成10个边长小于100的Rectangle和Square的随机对象  
        Random random = new Random();  
        double total_area = 0;
        double total_perimeter = 0;
        
        for (int i = 0; i < 10; i++) {  
            double width = random.nextDouble() * 100;  
            double height = random.nextDouble()*100;
            
            Rectangle mRectangle = new Rectangle(width, height);
            total_area+= mRectangle.getArea();
            
            total_perimeter+=mRectangle.getPerimeter();
        }
        System.out.println("随机生产的10个Rectangle面积之和为:"+total_area+",周长之和为:"+total_perimeter);
       
        for (int i = 0; i < 10; i++) {  
            double width = random.nextDouble() * 100;  
            double height = random.nextDouble()*100;
            
            Square mSquare = new Square(width, height);
            total_area+= mSquare.getArea();
            
            total_perimeter+=mSquare.getPerimeter();
        }
        System.out.println("随机生产的10个Square面积之和为:"+total_area+",周长之和为:"+total_perimeter);
        
    }
}