该题是抽象类的继承,请仔细阅读主方法和基类,完成代码,使得程序输出正常
裁判测试程序样例:
public class Main {
public static void main(String[] args) {
Shape s1=new Circle(3.0);
Shape s2=new Rec(4.5,7.6);
System.out.printf("%.3fn",s1.getArea());
System.out.printf("%.3f",s2.getArea());
}
}
abstract class Shape{
abstract double getArea();
}
输入样例:
在这里给出一组输入。例如:
结尾无空行
输出样例:
在这里给出相应的输出。例如:
28.274 34.200
结尾无空行
答案代码如下:
class Circle extends Shape{
double r;
Circle(){}//无参构造
Circle(double r){
this.r = r;
}//带参构造
public double getArea(){
return r*r*Math.PI;
}//获取面积的方法
}
class Rec extends Shape{
double m,n;
Rec(){}//无参构造
Rec(double m,double n){
this.m = m;
this.n = n;
}//带参构造
public double getArea(){
return m*n;
}//获取面积的方法
}
本题考察了继承抽象类的知识,若一个类继承了抽象类,那这个继承的类一定会重写抽象类中的方法,因为抽象类中的方法没有方法体只有方法名,所以继承它的类一定会重写没有方法体的方法



