通过覆盖父类中的抽象方法area()来求圆的面积和周长
建立一个抽象类 Area类,两个抽象类的派生子类RectArea类和RoundArea类,以及一个实现类ImpleArea类。要求如下:(1)抽象类Area类中只包含两个抽象方法double area();
和double girth();
(2)子类RoundArea通过覆盖父类中的抽象方法area()来求圆的面积和周长,另一子类RectArea()求长方形的面积和周长。
(3)圆的半径和长方形的长宽都定义为子类RoundArea和RectArea的域,为double类型。
(4)ImpleArea类接受键盘输入,输入长方形的长宽和圆的半径,求出圆的面积,并在屏幕上显示。
我写的不过不知道哪里错了,可以帮忙纠错一下吗?然后还有没有别的方法做这道题啊?
import java.util.Scanner;
abstract class Area{
abstract double area();
class RoundArea extends Area{
private double r;
public double area(){
return (r*r*Math.PI);
}
public double girth(){
return (2*Math.PI*r);
}
public RoundArea(int r){
this.r=(double)r;
}
}
class RectArea extends Area{
private double width;
private double height;
public double area(){
return (width*height);
}
public double girth(){
return (2*width+2*height);
}
public RectArea(int width,int height){
this.width=(double)width;
this.height=(double)height;
}
}
public class ImpleArea{
public void main(String[] args){
String[] str=new String[]{"","",""};
int[] ins=new int[3];
for(int i=0;i<3;i++){
try{
@SuppressWarnings("resource")
Scanner s=new Scanner(System.in);
System.out.println(str[i]);
ins[i]=s.nextInt();
}
catch(java.util.InputMismatchException e){
System.out.print("");
i--;
}
}
RoundArea roa=new RoundArea(ins[0]);
RectArea rea=new RectArea(ins[1],ins[2]);
System.out.println("'"+roa.area()+"','"+roa.girth()+"'");
System.out.println(":'"+rea.area()+"','"+rea.girth()+"'");
}
}
}