✎ℳ.梦魇ღ 2021-11-01 14:23 采纳率: 100%
浏览 61
已结题

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

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

  • 写回答

2条回答 默认 最新

  • iilmx 2021-11-01 15:07
    关注
    
    /**
     * 长方形
     */
    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()));
        }
    }
    
    
    

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 创建了问题 11月1日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?