编写一个完整的Java程序,要求:
(1)定义一个抽象类Shape,在该类中:
创建抽象方法Area()和printArea(), Area() 求解并返回面积,printArea() 用于输出面积,无返回值。
(2)创建Shape类的子类Rectangle(矩形)类,该类中:
包括两个私有整型变量width(宽)和length(长);
定义一个构造方法对width和length进行初始化;
在该类中实现抽象类中所定义的抽象方法;
(3)定义主类Test,在主方法中:
创建矩形实例,用构造方法初始化长、宽分别为3和4,求解并输出该矩形的面积。
题目中未涉及到的信息,可自行确定
(1)定义一个抽象类Shape,在该类中: 创建抽象方法Area()和printArea(), Area() 求解并返回面积,printArea() 用于输出面积,无返回值。......
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- threenewbee 2020-04-21 15:43关注
abstract class Shape{ //抽象类(一定有抽象方法,但不一定都是抽象方法) protected double area; abstract void showArea(); //抽象方法 } class Rectangle extends Shape{ //类的继承 private double x,y; Rectangle(){} Rectangle(double x,double y){ //有参构造方法初始化 this.x=x; this.y=y; } public double getX(){ return x; } public double getY(){ return y; } public void showArea(){ //计算面积并显示.showArea方法的重写 area=getX()*getY(); System.out.println(area); } } class Square extends Shape{ //同上 private double x; Square(){} Square(double x){ this.x=x; } public double getX(){ return x; } public void showArea(){ area=getX()*getX(); System.out.println(area); } } class Circle extends Shape{ //同上 private double r; Circle(){} Circle(double r){ this.r=r; } public double getR(){ return r; } public void showArea(){ area=3.14*getR()*getR(); System.out.println(area); } } public class Test3_2 { public static void main(String args[]){ Shape re=new Rectangle(2,3); //多态产生的第3个条件.父类的引用指向子类的对象 fun(re); //抽象方法重写产生多态,运行时根据具体对象类型决定方法调用 Shape sq=new Square(2); fun(sq); Shape ci=new Circle(2); fun(ci); } public static void fun(Shape p){ p.showArea(); } }
解决 4无用
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么