怎么样利用继承与多态,使用一个静态方法,将所有形状按照周长面积等排序?

1、矩形、正方形、菱形、圆形都是形状,请以形状(Shape)为最顶层的类,设计出一个层次化的类结构,求面积、周长的方法,作为形状类的抽象方法
2、写一个程序,随机创建20个形状,存储到数组中;利用多态思想,(尽量只)写一个静态排序方法,实现所有形状按照周长、面积从大到小及从小到大四种规则排序。修改排序方法,使其同时支持一种新的排序规则,按照面积,所有圆形从小到大排列,后面是所有其他图形从大到小排列。
3、输出结果应当能清晰直观的体现程序的正确性。


public class Shape {
    private int chang;
    private int kuan;
    private int area;
    private int zhouchang;

    public int getArea(int chang, int kuan) {
        return chang * kuan;
    }

    public Shape(int chang, int kuan, int area, int zhouchang) {
        this.chang = chang;
        this.kuan = kuan;
        this.area = area;
        this.zhouchang = zhouchang;
    }

    public Shape() {
    }
}




///////////////////////////////////////////////////



public class ZFX extends Shape {

    @Override
    public int getArea(int chang, int kuan) {
        return chang * kuan;
    }
}


// 排序
Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                int i1 = Integer.parseInt(s1);
                int i2 = Integer.parseInt(s2);
                return i1 - i2;
            }
        });
        System.out.println(list);
        // 输出结果为:[0, 2, 4, 7, 9, 10, 18],达到了排序效果
    }

修改排序方法,使其同时支持一种新的排序规则。这个是啥意思