Java类的使用中,一个测试点不能过
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a =sc.nextDouble();
if(a<0) a = -a;
double b = sc.nextDouble();
if(b<0) b = -b;
Square s = new Square(a);
Circle c = new Circle(b);
System.out.printf("边长为%.1f的正方形周长为%.1f,面积为%.1f\n",a,s.diameter(a),s.getArea(a));
System.out.printf("半径为%.1f的圆周长为%.2f,面积为%.2f",b,c.diameter(b),c.getArea(b));
}
}
abstract class Shape{
private double r;
public Shape(){};
public Shape(double r) {
this.r = r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public abstract double diameter(double r);
public abstract double getArea(double r);
}
class Circle extends Shape{
double PI = 3.14;
public Circle(double r){
super(r);
}
@Override
public double diameter(double r) {
return 2.0*PI*r;
}
@Override
public double getArea(double r) {
return PI*r*r;
}
}
class Square extends Shape{
public Square(double r){
super(r);
}
@Override
public double diameter(double r) {
return 4.0*r;
}
@Override
public double getArea(double r) {
return r*r;
}
}