解救一下我吧,求各位帮帮忙吧

编写一个Java 应用程序,运用Java 多态的知识:
[1)定义一个抽象类,描述一个矩形,包含有长、宽两种私有属性,有计算面积的抽象方法。
2)编写一个长方体类,继承自矩形类,同时该类描述长方体及其计算表面积和体积的方法。
(3)定义一个抽象类,描述一个圆形,包含有半径一种私有属性,有计算面积的抽象方法。(4)编写一个球体类,继承自圆形类,同时该类描述球体,计算其表面积和体积。
5)编写一个测试类,对以上所有类进行测试,要求用两种初始化方式赋值(set()方法和构造方法),
两种输出方式进行输出(get()方法和show()方法)。


/**
 * 长方形
 */
public abstract class Shape {
    private double length;
    private double width;

    public Shape(double length, double width){
        this.length = length;
        this.width = width;
    }

    double area(double length, double width) {
        return length * width;
    }

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }

    public double getWidth() {
        return width;
    }

    public void setWidth(double width) {
        this.width = width;
    }
}

/**
 * 长方体
 */
public class Square extends Shape{
    private double height;

    public Square(double length, double width) {
        super(length, width);
    }

    public Square(double length, double width, double height){
        this(length, width);
        this.height = height;
    }

    public double area(double length, double width, double height) {
        return 3 * (length * width + length * height + width *height);
    }
    public double volume(double length, double width, double height){
        return length * width * height;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }
}


/**
 * 圆形
 */
public abstract class Circle {
    public static final double PI = 3.14;

    private double r;

    public Circle(double r){
        this.r = r;
    }

    public double area(double r){
        return PI * r * r;
    }

    public double getR() {
        return r;
    }

    public void setR(double r) {
        this.r = r;
    }
}


public class Sphere extends Circle{
    public Sphere(double r) {
        super(r);
    }

    public double area(double r){
        return 4 * PI * r * r;
    }
    public  double volume(double r){
        return 4 * PI * r * r * r / 3;
    }
}

/**
 * 测试类
 */
public class TestMain {
    public static void main(String[] args) {
        //矩形
        Shape shape = new Shape(5, 3) {
            @Override
            public void setLength(double length) {
                super.setLength(length);
            }
            @Override
            public void setWidth(double width) {
                super.setWidth(width);
            }
        };
        System.out.println("长方形的面积为:"+shape.area(shape.getLength(), shape.getWidth()));

        //长方体
        Square square = new Square(5, 4, 2);
        System.out.println("长方体的面积为:"+square.area(square.getLength(),square.getWidth(), square.getHeight()));
        System.out.println("长方体的体积为:"+square.volume(square.getLength(),square.getWidth(), square.getHeight()));

        //圆形
        Circle circle = new Circle(5) {
            @Override
            public void setR(double r) {
                super.setR(r);
            }
        };
        System.out.println("圆形的面积为:"+circle.area(circle.getR()));

        //球体
        Sphere sphere = new Sphere(9);
        System.out.println("球体的面积为:"+sphere.area(sphere.getR()));
        System.out.println("球体的体积为:"+sphere.volume(sphere.getR()));
    }
}


对你有帮助的话,请采纳一下哈!!!

自己写它不香吗