✎ℳ.梦魇ღ 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日

悬赏问题

  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战
  • ¥15 svpwm波形异常求解答
  • ¥15 STM32——硬件IIC从机通信代码实现
  • ¥15 关于GRSL投稿的疑问
  • ¥15 微生物组数据分析--微生物代谢物
  • ¥30 求一跃动小子保卫主公Java算法实现
  • ¥15 地图软件开发技术答疑(api, 地点获取,外观样式)