package randi;
import static java.lang.Math.PI;
public class ShapeDemo {
public static void main(String[] args) {
Shape sha = new Shape();
Circle s1 = new Circle(10);
Rect s2 = new Rect(5, 6);
Squr s3 = new Squr(10);
sha.print(s1);
sha.print(s2);
sha.print(s3);
}
}
class Shape {
public void print(Shape sha) {
System.out.println(sha.getName() + "面积: " + sha.getArea());
System.out.println(sha.getName() + "周长: " + sha.getGirth());
}
public double getArea() {
return 0;
}
public double getGirth() {
return 0;
}
public String getName() {
return null;
}
}
class Circle extends Shape {
private double radius;
public Circle() {}
public Circle(double radius) {
this.radius = radius;
}
public double getArea() {
return PI * radius * radius;
}
public double getGirth() {
return PI * radius * 2;
}
public String getName() {
return "Cir";
}
}
class Rect extends Shape {
private double length;
private double width;
public Rect() {}
public Rect(double length, double width) {
this.length = length;
this.width = width;
}
public double getArea() {
return width * length;
}
public double getGirth() {
return (width + length) * 2;
}
public String getName() {
return "Rect";
}
}
class Squr extends Rect {
public Squr() {}
public Squr(double length) {
super(length, length);
}
public String getName() {
return "Squr";
}
}