编写一个Java 应用程序,运用Java 多态的知识:
[1)定义一个抽象类,描述一个矩形,包含有长、宽两种私有属性,有计算面积的抽象方法。
2)编写一个长方体类,继承自矩形类,同时该类描述长方体及其计算表面积和体积的方法。
(3)定义一个抽象类,描述一个圆形,包含有半径一种私有属性,有计算面积的抽象方法。(4)编写一个球体类,继承自圆形类,同时该类描述球体,计算其表面积和体积。
5)编写一个测试类,对以上所有类进行测试,要求用两种初始化方式赋值(set()方法和构造方法),
两种输出方式进行输出(get()方法和show()方法)。
解救一下我吧,求各位帮帮忙吧
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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())); } }
对你有帮助的话,请采纳一下哈!!!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥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, 地点获取,外观样式)