62,569
社区成员




/**
public abstract class Shape {
private String name;
public Shape(String name) {
this.name = name;
}
public String getName() {
return name;
}
public abstract double calcGrith();
public abstract double calcAcreate();
}
public class Rect extends Shape{
private double width;
private double height;
public Rect(String name, double width, double height) {
super(name);
this.width = width;
this.height = height;
}
@Override
public double calcAcreate() {
return width * height;
}
@Override
public double calcGrith() {
return 2 * (width + height);
}
@Override
public String getName() {
return super.getName();
}
}
public class Circle extends Shape{
private double radius;
public Circle(String name, double radius) {
super(name);
this.radius = radius;
}
@Override
public double calcAcreate() {
return Math.PI * radius * radius;
}
@Override
public double calcGrith() {
return Math.PI * 2 * radius;
}
@Override
public String getName() {
return super.getName();
}
}
public class Square extends Rect{
private double edge;
public Square(String name, double edge) {
super(name, edge, edge);
this.edge = edge;
}
@Override
public double calcAcreate() {
return edge * edge;
}
@Override
public double calcGrith() {
return 4 * edge;
}
@Override
public String getName() {
return super.getName();
}
}
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Shape> shapeList = new ArrayList<Shape>();
Shape s1 = new Rect("矩形", 20, 10);
Shape s2 = new Circle("圆形", 10);
Shape s3 = new Square("方形", 10);
shapeList.add(s1);
shapeList.add(s2);
shapeList.add(s3);
Shape s = null;
for(int i=0; i<shapeList.size(); i++) {
s = shapeList.get(i);
System.out.println(s.getName() + "\t周长:" + s.calcGrith() + "\t面积:" + s.calcAcreate());
}
}
}
/*
矩形 周长:60.0 面积:200.0
圆形 周长:62.83185307179586 面积:314.1592653589793
方形 周长:40.0 面积:100.0*/