第1关:练习-Java继承和多态之abstract类
任务描述
本关任务:通过图形类的计算面积的方法,计算矩形和三角形的面积。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中计算矩形和三角形的面积,具体要求如下:
-
将 Shape 图形类改为抽象类,并定义一个抽象方法 area(),返回值类型为 double,计算图形的面积;
-
Rectangle 为矩形类,该类继承 Shape 类,并拥有 Shape 类的属性,重写抽象方法 area,计算矩形的面积(高*宽),并将计算结果返回;
-
Triangle 为矩形类,该类继承 Shape 类,并拥有 Shape 类的属性,重写抽象方法 area,计算三角形的面积(高*宽/2),并将计算结果返回。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。
测试输入:
true
ok
预期输出:
两者是否相等:false
开始你的任务吧,祝你成功!
源代码:
/**
* 通过图形类的计算面积的方法,计算矩形和三角形的面积。
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 将 Shape 类改为抽象类
abstract public class Shape {
public int width; // 几何图形的宽
public int height; // 几何图形的高
public Shape(int width, int height) {
this.width = width;
this.height = height;
}
// 定义一个抽象方法 area(),返回值类型为 double,计算图形的面积
public abstract double area();
}
// Rectangle 为矩形类,该类继承 Shape 类,并拥有 Shape 类的属性
class Rectangle extends Shape{
// 定义一个有参构造器
public Rectangle(int width,int height){
super(width,height);
}
// 重写抽象方法 area,计算矩形的面积(高*宽),并将计算结果返回
public double area(){
double s = width * height;
return s;
}
}
// Triangle 为矩形类,该类继承 Shape 类,并拥有 Shape 类的属性
class Triangle extends Shape{
// 定义一个有参构造器
public Triangle(int width,int height){
super(width,height);
}
// 重写抽象方法 area,计算三角形的面积(高\*宽/2),并将计算结果返回
public double area(){
double s = 1.0 / 2 * width * height;
return s;
}
}
/********** End **********/