Description
先定义一个抽象Graphic类,有求面积的computeArea抽象方法(返回值为面积,圆周率取3.14) ;
然后定义一个从Graphic派生的Circle类,有double类型的半径,以及重写的computeArea抽象方法。
再定义一个从Graphic派生的Rectangle类,有double类型的长和宽属性,以及重写的computeArea抽象方法。
要求main方法中至少包含如下代码(这些语句不要求必须放在一起) :
Graphic g;
g=new Circle® ;
g=new Rectangle (a,b) ;
g. computeArea() ;
Input
第一行输入数据的组数N,然后有N组数据。每组数据由-一个字符 和几个浮点数组成,第-一个如何是’c’表示Circle,是’r’表示Re
ctangle;如果前面是’c’,后面跟一一个浮点,如果是’r’后面跟两个浮点。
Output
图形类型及其面积(精度保留2位)。
package CLASSlei;
import java.util.Scanner;
//抽象类
abstract class Graphic{
public abstract double compiteArea();
}
class circles extends Graphic{
double radis;
public circles(double radis){
this.radis=radis;
}
public double compiteArea(){
return 3.14*radis*radis;
}
}
class Rectangle extends Graphic{
double high,wide;
public Rectangle(double high,double wide){
this.high=high;
this.wide=wide;
}
public double compiteArea(){
return high*wide;
}
}
public class G {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
while (n != 0) {
n--;
String s=input.next();
char target=s.charAt(0);
Graphic gg;
double area;
if(target=='c'){
double r=input.nextDouble();
gg=new circles(r);
area=gg.compiteArea();
System.out.printf("Circle:%.2f\n",area);
}
else {
double a=input.nextDouble();
double b=input.nextDouble();
gg=new Rectangle(a,b);
area=gg.compiteArea();
System.out.printf("Rectangle:%.2f\n",area);
}
}
}
}